【发布时间】:2016-12-26 17:45:29
【问题描述】:
我正在尝试创建一个带有 ID 标记的标记集群,因为我稍后想从地图中删除一个标记。但是,我什至无法让这些标记的标记出现在地图上。我正在从 geoJSON 格式的变量 individualPoints 加载它们。我可以使用以下代码 sn-p 直接将这些标记添加到地图中:
// create object to save markers
var markersID = {};
// exchanges latitude & longitude
function switchLatLong(oldLocation) {
return new L.LatLng(oldLocation[1], oldLocation[0]);
}
var geoJsonLayer = L.geoJson(individualPoints, {
onEachFeature: function(feature, layer) {
/* can add directly to the map--this works */
markersID[feature.properties.id] =
L.marker(switchLatLong(feature.geometry.coordinates))
.addTo(map);
}
});
但我希望它们在一个集群中,所以我认为我需要用一个 ID 标记每个标记(如this question),然后将该组添加到集群中,如下所示:
var geoJsonLayer = L.geoJson(individualPoints, {
onEachFeature: function(feature, layer) {
/* tag the marker with the id */
markersID[feature.properties.id] =
L.marker(switchLatLong(feature.geometry.coordinates));
}
});
// create a marker cluster group, and add the markers to this.
var markers = L.markerClusterGroup({});
/* here's where I'm trying to toggle to use the markers with ID numbers */
//markers.addLayer(geoJsonLayer); // this works
markers.addLayers(markersID); // this doesn't
添加geoJsonLayer 效果很好,但添加markersID 不行。所以我一定是错误地添加了markersID。
这是一个jsfiddle。
https://jsfiddle.net/anfw0n6w/
问题: 有没有更好的方法来创建具有我以后可以参考的 ID 的标记?我还能如何将markersID 添加到markerClusterGroup?
【问题讨论】:
标签: javascript leaflet markerclusterer leaflet.markercluster