2016-03-08 42 views
0

我正在使用傳單構建法國地圖,突出顯示地區和點擊放大。'GeoJSON對象無效'。使用傳單和傳單-ajax

我第一次使用本教程:http://leafletjs.com/examples/choropleth.html

首先,我已經在的script.js的GeoJSON的,但對我來說,我需要在分離GeoJSON的文件的區域。 所以我現在要求他們在這樣的傳單,阿賈克斯的script.js:顯示在地圖上

var BordeauxLayer = new L.GeoJSON.AJAX("src/js/DI_Bordeaux.geojson").addTo(map); 

的地區,但現在所有的功能放大,突出等..我接受教程不再工作了。

L.geoJson(BordeauxLayer,{onEachFeature: onEachFeature}).addTo(map); 

// HIGHLIGHT FEATURE = MOUSEOVER 

function onEachFeature(feature, layer) { 
    layer.on({ 
     mouseover: highlightFeature, 
     mouseout: resetHighlight, 
     click: zoomToFeature 
    }); 
    } 


    // HIGHLIGHT FEATURE = MOUSEOVER 
    function highlightFeature(e) { 
     var layer = e.target; 

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


    // HIGHLIGHT FEATURE = MOUSE LEFT 
function resetHighlight(e) { 
     geojson.resetStyle(e.target); 
    }; 

// ZOOM TO THE REGION 
    function zoomToFeature(e) { 
    map.fitBounds(e.target.getBounds()); 
} 

現在控制檯說「未捕獲錯誤:無效的GeoJSON的對象」上leaflet.js的8行。

的問題似乎是在這條線:

L.geoJson(BordeauxLayer,{onEachFeature: onEachFeature}).addTo(map); 

而且我不明白爲什麼:(

編輯:這是我的GeoJSON的:https://api.myjson.com/bins/3s1ad

感謝的提前

+0

你能請張貼鏈接到您的DI_Bordeaux.geojson文件? – snkashis

+0

它是這樣的:https://api.myjson.com/bins/3s1ad – user3509734

回答

1

您致電onEachFeature必須在您的AJAX呼叫中

var BordeauxLayer = new L.GeoJSON.AJAX("src/js/DI_Bordeaux.geojson", {onEachFeature: onEachFeature}).addTo(map); 

你還必須擺脫

L.geoJson(BordeauxLayer,{onEachFeature: onEachFeature}).addTo(map); 
+0

就在我發佈我的答案之前...... :-)無論如何,這裏是我關聯的JSFiddle,實現的確如此:http://jsfiddle.net/ve2huzxw/197/ – ghybs

+0

非常感謝! – user3509734