5

因此,我正在尝试使用 Leaflet 发布 MapBox 地图,并希望通过 AJAX 调用从外部数据源添加一些标记。具体来说,我正在用这个数据集绘制出纽约市的所有 wifi 热点。我看到它说我可以在 JSON 中下载 wifi 位置,但我仍在尝试自学如何编码并且不知道从那里做什么。

这是 MapBox 提供的使用站点目录上托管的 .js 的示例。如果我改为进行 AJAX 调用会是什么样子?

<script src="museums.js"></script>
<script type="text/javascript">
// Define a GeoJSON data layer with data
var geojsonLayer = new L.GeoJSON();

// Display the name property on click
geojsonLayer.on('featureparse', function (e) {
    if (e.properties && e.properties.name){
    e.layer.bindPopup(e.properties.name);
}
});

geojsonLayer.addGeoJSON(data);

// Add the GeoJSON layer
map.addLayer(geojsonLayer);
</script>
4

1 回答 1

8

按照您指向 wifi spot 数据集的链接,告诉我您可以从此 url 调用 json 数据:wifi spot

问题是生成的 json 不是 GEOJSON 格式(维基百科)...

如果您有效地拥有一个为您提供有效 GEOJSON 的 url,您可以使用 jQuery 通过以下方式进行 Ajax 调用:

$.ajax({
    type: "POST",
    url: "https://nycopendata.socrata.com/api/views/ehc4-fktp/rows.json",
    dataType: 'json',
    success: function (response) {

        geojsonLayer = L.geoJson(response, {
            style: yourLeafletStyle
        }).addTo(map);
    }
});

问候

艾蒂安

于 2012-08-06T22:22:15.050 回答