2013-06-09 10 views
6

Ich versuche, eine gruppierte Karte auf MapBox einzurichten, wie http://leaflet.github.io/Leaflet.markercluster/example/marker-clustering-realworld.388.htmlClustering Markierungen auf MapBox/Prospekt

Aber ihr Beispiel verwendet eine einfache JS-Datei als Daten http://www.mapbox.com/mapbox.js/assets/realworld.388.js

Und das einzige, was ich kann aus Mapbox bekommen .geojson http://api.tiles.mapbox.com/v3/thebteam.map-w9jzcznw/markers.geojson

Gibt es eine Möglichkeit, die Geojson in js konvertieren (regelmäßig)? Oder ein Javascript-Array aus Mapbox exportieren?

BEARBEITEN: endete meine Daten in CSV und suchen einen Parser. Hier ist der Code, das funktioniert, wenn jemand braucht es:

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

Warum jsut keine Schleife schreiben die tun Arbeite für dich? –

+0

Meine JS Fähigkeiten sind nicht so toll. – Erica

+0

Ich habe meine Daten auf CSV umgestellt und einen Parser gefunden. – Erica

Antwort

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

Das ist schlau. Am Ende habe ich meine Daten auf CSV umgestellt, aber es sieht so aus, als würde es dasselbe tun, was ich versucht habe. – Erica

9

erstellen GeoJSON Schicht und dann diese Schicht zu MarkerCluster hinzufügen:

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

Was ist "dataFromMapbox" und wie sieht es aus? – parkr

+0

dataFromMapbox ist das geoJson selbst, sorry, wenn es nicht klar war, kopierte ich das fragmen meines eigenen Codes. Ich habe den Code so bearbeitet, dass er besser lesbar ist. –

+1

Danke, Bruder, es funktioniert für mich. –