我正在尝试在 mapbox 上设置集群 map ,例如 http://leaflet.github.io/Leaflet.markercluster/example/marker-clustering-realworld.388.html
但是他们的示例使用普通的 .js 文件作为数据 http://www.mapbox.com/mapbox.js/assets/realworld.388.js
我唯一能从 mapbox 得到的是 .geojson http://api.tiles.mapbox.com/v3/thebteam.map-w9jzcznw/markers.geojson
有什么方法可以将 geojson 转换为 js(定期)?或者从 mapbox 导出 javascript 数组?
编辑:最终将我的数据切换为 CSV 并找到了解析器。这是有效的代码,如果有人需要的话:
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);
});
最佳答案
创建一个 geoJson 层,然后将该层添加到 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);
关于javascript - map 框/传单上的聚类标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005784/