隐藏标记 - Mapbox
问题描述:
我已添加标记,如以下示例中所示。隐藏标记 - Mapbox
for (let x = 0; x < mapMarkers.length; x++) {
//mapObject.totalMarkers.push(createMarker(mapMarkers[x].whereLat, mapMarkers[x].whereLng, mapMarkers[x].id, detailContId));
markerClusters.addLayer(createMarker(mapMarkers[x].whereLat, mapMarkers[x].whereLng, mapMarkers[x].id, detailContId));
}
markerClusters.on('clusterclick', function(a) {
zoomLevel = mapObject.getZoom();
if (zoomLevel < appConfig.userSetting.maxZoom) {
mapObject.zoomIn();
} else {
a.layer.spiderfy();
}
});
mapObject.addLayer(markerClusters);
现在我想隐藏一些标记。我做了一些像以下给出的Rnd,但无法成功。任何帮助对我来说都很棒。
objMap.removeLayer(mapMarkers[0]);
答
objMap.removeLayer(mapMarkers[0]);
这将使意义,如果你是在加入mapMarkers地图,但作为这个代码所示,这是不是这样的:mapMarkers是您在使用createMarker
方法转化为标记对象中的数据然后添加到地图中。
从概念上说,您有,其中包含markerClusters
,其中包含标记(您不分配变量名称)。因此,如果您想从标记群体中删除特定标记,则需要从群集的角度调用removeLayer
,而不是从地图中调用。
所以,你可以使用markerCluster.eachLayer
,像
markerClusters.eachLayer(function (layer, i) {
if (i == 0) markerClusters.removeLayer(layer);
});
这将消除第一层。如果您还有其他准则需要删除其中的群集,则需要先将这些标记存储到数组中,然后再将其添加到群集中,或者将该简单的if
语句更改为测试标记是否应该是除去。