2012-08-06 14 views
5

Estoy tratando de publicar un mapa MapBox con Leaflet y quiero agregar algunos marcadores desde una fuente de datos externa con una llamada AJAX. Específicamente, estoy mapeando todos los puntos wifi en Nueva York con this data set. Veo dónde dice que puedo descargar las ubicaciones wifi en JSON, pero todavía estoy tratando de enseñarme cómo programar y no sé qué hacer desde allí.Extraiga los datos de GeoJSON en el prospecto con la llamada AJAX

Este es el ejemplo que MapBox da al usar un .js alojado en el directorio de su sitio. ¿Cómo se vería si hiciera una llamada 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> 

Respuesta

7

Después de su enlace a los datos puntuales inalámbricas establecidas mí demostrar que se puede llamar a los datos JSON desde esta dirección: wifi spot

El problema es que el JSON resultante no se formatea en formato GeoJSON (Wikipedia). ..

en el caso de que efectivamente tiene una url que le da GeoJSON válida, se puede usar jQuery para realizar la llamada Ajax de la siguiente manera:

$.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); 
    } 
}); 

Saludos

Etienne

Cuestiones relacionadas