2013-06-09 10 views
6

próbuję skonfigurować klastrowego mapę na mapbox, jak http://leaflet.github.io/Leaflet.markercluster/example/marker-clustering-realworld.388.htmlmarkery klastrowania na mapbox/ulotka

Ale ich przykładzie użyto zwykły plik js jako dane http://www.mapbox.com/mapbox.js/assets/realworld.388.js

a jedyną rzeczą, jaką można uzyskać z mapbox jest .geojson http://api.tiles.mapbox.com/v3/thebteam.map-w9jzcznw/markers.geojson

Czy istnieje sposób, aby przekonwertować geojson do js (na bieżąco)? Lub wyeksportować tablicę javascript z mapbox?

EDYCJA: zakończyłem przełączanie moich danych do pliku CSV i znalezienie analizatora składni. Oto kod, który pracował, jeśli ktoś go potrzebuje:

var url = 'https://docs.google.com/spreadsheet/pub?key=abc123'; 

$.get(url, function(data) { 
    var addressPoints = $.csv.toArrays(data); 
    var map = L.mapbox.map('map', 'map-abc123').setView([20.30, 18.98], 2); 
    var markers = new L.MarkerClusterGroup({ showCoverageOnHover: false }); 

    for (var i = 0; i < addressPoints.length; i++) { 
    var a = addressPoints[i]; 
    var title = a[2]; 
    var marker = L.marker(new L.LatLng(a[0], a[1]), { 
     icon: L.mapbox.marker.icon({'marker-size': 'small', 'marker-color': 'e8168c'}), 
     title: title 
    }); 
    marker.bindPopup(title); 
    markers.addLayer(marker); 
    } 

    map.addLayer(markers); 

}); 
+0

Dlaczego nie jsut napisać pętlę zrobić to praca dla Ciebie? –

+0

Moje umiejętności JS nie są tak wspaniałe. – Erica

+0

Skończyło się przełączanie moich danych do pliku CSV i znajdowanie analizatora składni. – Erica

Odpowiedz

2
var geojson = dataFromMapbox; 
var lat; 
var lng; 
for(var i= 0;i<geojson.features.length;i++) 
    { 
    lat = geojson.features[i].geometry.coordinates[0]; 
    lng = geojson.features[i].geometry.coordinates[1]; 

    //create a marker with those values, pass it to a MarkerCluster object 

    } 
+0

To jest inteligentne. Skończyło się na zmianie moich danych na CSV, ale wygląda na to, że zrobiłbym to samo, co próbowałem. – Erica

9

utworzyć warstwę GeoJSON a następnie dodać, że warstwę MarkerCluster:

var markers = new L.MarkerClusterGroup(); 
var geoJsonFeature = = { 
    "type": "Feature", 
    "properties": { 
    "name": "Coors Field", 
    "amenity": "Baseball Stadium", 
    "popupContent": "This is where the Rockies play!" 
    }, 
    "geometry": { 
    "type": "Point", 
    "coordinates": [-104.99404, 39.75621] 
    } 
}; 
var geoJsonLayer = L.geoJson(geoJsonFeature); 

markers.addLayer(geoJsonLayer); 
map.addLayer(markers); 
+0

Co to jest "dataFromMapbox" i jak wygląda? – parkr

+0

dataFromMapbox to samo GeoJson, przepraszam, jeśli nie było jasne, skopiowałem fragmenty mojego własnego kodu. Poprawiłem kod, aby był bardziej czytelny. –

+1

Dzięki, stary, działa dla mnie. –