加载GeoJson文件来制作传单

时间:2019-08-31 16:10:59

标签: leaflet geojson

我有一个GeoJson文件,我正在尝试将它加载到Leaflet的logic.js中。我在console.logged响应中获取了数据,但是,当我尝试将数据应用于地图时,它给了我以下错误:Uncaught (in promise) Error: Invalid GeoJSON object. 我的GeoJSON数据如下所示:

  "type": "WineCollection",
  "wines": [
    {
      "type": "wine",
      "properties": {
        "country": "Albania",
        "points": 88.0,
        "price": 20.0
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          19.9999619,
          41.000028
        ]
      }
    },

这是我的代码:

  center: [40.7128, -74.0059],
  zoom: 2.5
});

// Adding tile layer
L.tileLayer("https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}", {
  attribution: "Map data &copy; <a href=\"https://www.openstreetmap.org/\">OpenStreetMap</a> contributors, <a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>",
  maxZoom: 18,
  id: "mapbox.streets",
  accessToken: API_KEY
}).addTo(myMap);

d3.json("static/js/wine.json").then(function(data) {
  L.geoJson(data).addTo(myMap);
});

1 个答案:

答案 0 :(得分:0)

数据样本不符合GeoJSON specification

您可以拥有一个“ FeatureCollection”类型的对象,并具有一个“ features”数组,这些数组是“ Feature”类型的对象(并具有数据样本中的“ properties”和“ geometry”)。

很遗憾,您无法自定义这些类型。

有几种可用的GeoJSON linting工具可以帮助您快速发现不合规的数据,例如http://geojsonlint.com/