2012-08-06 52 views
5

所以我試圖用Leaflet發佈一個MapBox地圖,並希望通過AJAX調用從外部數據源添加一些標記。具體來說,我用this data set來映射出紐約市所有的wifi點。我看到它說我可以用JSON下載wifi位置,但我仍然試圖教自己如何編碼,不知道該從哪裏做什麼。將GeoJSON數據帶入AJAX調用的小葉

下面是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> 

回答

7

按照你的鏈接到的WiFi點數據集,告訴我,你可以從這個URL調用JSON數據:wifi spot

的問題是,所產生的JSON是不以GeoJSON格式(Wikipedia)格式化。 ..

在您有效地有一個網址給你有效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); 
    } 
}); 

Regards

Etienne