我正在开发一个带有谷歌地图的应用程序,它应该在地图上显示几个类别。现在我想有可能从几个类别中添加标记并在必要时删除它们。
我设法弄清楚了整个事情。至少,几乎……我在删除一个类别的标记时遇到了麻烦。我在 jsfiddle 上创建了一个现场演示来说明这一点。所以这就是我尝试这样做的方法:
代码
首先我初始化地图等(但这与这里无关)。然后我在地图上添加标记:
for(i in markers){
var marker = new google.maps.Marker({
map: map,
draggable: false,
position: new google.maps.LatLng(markers[i].latitude, markers[i].longitude),
visible: true,
data: category
});
newMarkers.push(marker);
}
如您所见,我在对象中有“数据:类别”。这不是 google maps api,但它没有给我任何错误,并且让我可以在我想删除标记时搜索数组。这里是 removeMarker 函数:
function removeMarkers(category)
{
for(i in newMarkers) {
if(newMarkers[i]['data'] == category){
count ++;
newMarkers[i].setMap(null);
newMarkers.splice(i, 1);
}
}
}
它确实删除了标记,但不是全部...有没有人可以解决我的问题?
现场演示
提前致谢,
海伦娜·S。