나는 마이크의 클릭 줌 - 예와 유사 지역으로 확대지도를 구현하고 싶습니다 http://bl.ocks.org/mbostock/2206590(이 경우 확대의 목적을 위해)
사실 이미 잘 작동합니다. 내 문제는 내가 클릭 이벤트에 의존하여 확대/축소를 구현할 수 없다는 것입니다. 확대/축소는 다른 이벤트 (링크)에 의해 트리거됩니다. 마이크 코드의이 부분에 도달했을 때 :
function clicked(d) {
var x, y, k;
if (d && centered !== d) {
var centroid = path.centroid(d);
...
나는 'd'가 없기 때문에 약간의 손실이 있습니다. 그래서 저는 대신 제가 전화 할 때 수동으로 'd'를 클릭 기능에 전달할 수 있다고 가정합니다. 그러나 실제로지도에서 원하는 기능을 실제로 선택하려면 어떻게해야합니까?
좀 더 구체적으로 말해서 나는 세계의지도를 가지고 있습니다. SVG 그룹 내의 경로 (예를 들어 프랑스의 한 모양) 클래스 정보가 포함
<path class="subunit FXX FRA" id="FXX" data-subunit="FXX" data-countryName="France" data-countryCode="FRA" d="M153.88838704622088,519........"></path>
가 어떻게 클릭 된 (D) 함수에 '프랑스의 객체를'통과 할 것인가? 아니면 제가 시도해야 할 또 다른 접근법이 있습니다.
모든 도움말이나 도움을 주시면 감사하겠습니다.
클릭 이벤트 처리기의 의미를 유지하지 않습니다. 특히, 'this'는 현재 DOM 객체로 설정되지 않습니다. 이 경우에는 문제가되지 않지만 일반적으로주의해야합니다. –
이것은 완벽하게 작동합니다. 실제로 이런 식으로 시도했지만 'datum()'메서드가 없으므로 콘솔에서 볼 수있는 것은 객체가 아니라 배열이었습니다. – pingin