Извлеките данные GeoJSON в Leaflet с помощью вызова AJAX

Итак, я пытаюсь опубликовать карту MapBox с помощью Leaflet и хочу добавить несколько маркеров из внешнего источника данных с помощью вызова AJAX. В частности, я составляю карту всех точек Wi-Fi в Нью-Йорке с помощью этого набора данных. . Я вижу, где говорится, что я могу загрузить местоположения Wi-Fi в JSON, но я все еще пытаюсь научиться программировать и не знаю, что делать дальше.

Вот пример, который 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>

person geraldarthur    schedule 06.08.2012    source источник


Ответы (1)


Следуя вашей ссылке на набор данных точек Wi-Fi, покажите мне, что вы можете вызывать данные json из этого URL-адреса: точка Wi-Fi

Проблема в том, что полученный json форматируется не в формате GEOJSON (Википедия)...

Если у вас действительно есть URL-адрес, дающий вам действительный GEOJSON, вы можете использовать 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);
    }
});

С Уважением

Этьен

person Etienne Desgagné    schedule 06.08.2012