'Invalid GeoJSON object.' 使用 Leaflet 和 leaflet-ajax

'Invalid GeoJSON object.' Using Leaflet and leaflet-ajax

我正在使用 leaflet 绘制法国地图,突出显示区域并单击缩放。

我首先使用了这个教程:http://leafletjs.com/examples/choropleth.html

首先,我在 script.js 中有 geojson,但在我的例子中,我需要单独的 geojson 文件中的区域。 所以我现在在 script.js 中用 leaflet-ajax 像这样称呼他们:

 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 行显示“未捕获错误:无效的 GeoJSON 对象。”

问题似乎出在这一行:

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

我不明白为什么:(

编辑:这是我的 geojson:https://api.myjson.com/bins/3s1ad

提前致谢。

您对 onEachFeature 的调用必须在您的 AJAX 调用中

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

你也得去掉

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