2014-05-19 2 views
0

저는 현재 전단지와 함께 NYC의 choropleth을 구현하려고합니다. 나는 그것에 따라 tutorial 이렇게하고있어, 그리고 내가 "상호 작용 추가"섹션에 도달 할 때까지 잘 진행되었다. mouseover 함수 또는 다른 함수를 추가하려고하면 e을 정의 할 수 없으며 Chrome 콘솔에서이 Uncaught TypeError: Cannot read property 'setStyle' of undefined 오류가 발생합니다. 전단지 사용 방법 GeoJson 옵션

은 이러한 스타일이 잘 작동 호출되는 두 가지 기능이 있습니다 내가 onEachFeature

L.geoJson(geoJsonZipCode, {style: style, onEachFeature: highlightFeature}).addTo(map); 

에 대한 optionhighlightFeature를 추가했던 방법이지만, highlightFeature하지 않습니다

function style(feature) { 
    return { 
    fillColor: getColor(feature.properties.density), 
    weight: 1, 
    opacity: 1, 
    color: 'white', 
    dashArray: '3', 
    fillOpacity: 0.7 
    }; 
} 

function highlightFeature(e) { 
    var layer = e.target; 

    layer.setStyle({ 
    weight: 5, 
    color: '#666', 
    dashArray: '', 
    fillOpacity: 0.7 
    }); 

    if (!L.Browser.ie && !L.Browser.opera) { 
    layer.bringToFront(); 
    } 
} 

답변

0

자습서의 '상호 작용 추가'섹션에서 highlightFeaturehover 이벤트의 수신기에 연결됩니다. 별도의 onEachFeature 함수가이 작업을 수행합니다. 이 자습서의 기술을 자세히 따르기 만하면이 문제를 피할 수 있습니다.

+0

나는 그것을 추가했지만 여전히 작동하지 않습니다. 크롬은 이전에 사용했던 변수가 정의되지 않은 오류를 던지고 있습니다. 범위를 벗어났습니다. 그리고 그것들을 다시 정의하면 정의되지 않은 변수에 대한 전단지 라이브러리에서 오류가 발생합니다. – Tsiege

+0

어떤 이유로'''geojson = L.geoJson (statesData, {style : style, onEachFeature : onEachFeature}) 행을 지우고 addTo (map);'''를 document.ready에서 고치십시오. 이유는 모르겠지만 콘솔에서 호출하면 작동합니다. – Tsiege

관련 문제