我正在使用传单制作法国地图,并突出显示区域,并点击缩放。
我首先使用了本教程:http://leafletjs.com/examples/choropleth.html
首先,我在script.js中有geojson,但在我的情况下,我需要分开的geojson文件中的区域。 所以我现在用scriptlet-ajax在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());
}
现在控制台在leaflet.js的第8行显示“Uncaught Error:Invalid GeoJSON object。”。
问题似乎在这一行:
L.geoJson(BordeauxLayer,{onEachFeature: onEachFeature}).addTo(map);
我不明白为什么:(
编辑:这是我的geojson:https://api.myjson.com/bins/3s1ad
提前感谢。
答案 0 :(得分: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);