在Google地图上使用MarkerWithLabel隐藏标记

5

我目前正在使用带标签控件的谷歌地图标记。我可以动态地将一个标记分配给地图,并为该标记添加标签。

我已经找到了如何隐藏标签,但是我有点困惑如何隐藏标志并显示标签。有没有人有关于这个问题的建议?

markerWithLabel.setMap(null);

移除标记和标签,而不仅仅是标记。


你能分享一下你目前做了什么吗?你所说的“label”是什么意思? - Vishal Sharma
如果您想要分别控制它们,您可能需要修改该代码。或者将标签独立于标记放置在地图上(即使用InfoBox作为标签,并使用普通的google.maps.Marker作为标记)。 - geocodezip
2个回答

19

我成功地将标记隐藏,通过将图标设置为空字符串" "。

var marker = new MarkerWithLabel({
            icon: " ",
            position: location,
            draggable: true,
            raiseOnDrag: true,
            map: map,
            labelContent: z, 
            labelAnchor: new google.maps.Point(22, 0),
            labelClass: "labels", // the CSS class for the label
            labelStyle: {opacity: 0.75},
        });

非常干净的解决方案。奇怪的是它起作用了——这似乎根本不请求任何东西(其中不存在的路径将导致大量的404请求)。 - Chris Spiegl
这应该是正确的答案,它很简单并且有效。 - Diego Velez

5
非常简单,只需将透明图片设置为图标。 在此示例中,当单击MarkerWithLabel时,我将1x1透明GIF - pixel_trans.gif - 设置为图标:
var marker = new MarkerWithLabel({
...
});

google.maps.event.addListener(marker, 'click', function() {
  this.setIcon('pixel_trans.gif');
});

当点击标记时,Viola,标记会被隐藏,但标签会保留。在当前版本的MarkerWithLabel中,无法隐藏图标并仅显示标签。


注意:在此之前,您必须传递有效的图像才能使其正常工作,例如存在的图像。使用null或无效图像的setIcon将被忽略。1x1的透明gif是一个可以接受的解决方案,因为用户将体验到标记已被隐藏,并且尝试点击它将会非常困难 :)


1
@barry 的 MSIH 回答应该被标记为正确的方式。 - Ravi Ram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接