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

时间:2013-10-02 17:36:06

标签: javascript google-maps google-maps-api-3 google-maps-markers

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

我已经想出了如何隐藏标签,但是我对如何隐藏图标和显示标签感到有些失落。有人对此提出一些建议?

markerWithLabel.setMap(null);

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

2 个答案:

答案 0 :(得分:13)

我可以通过将图标设置设置为空字符串“”来隐藏标记。

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},
        });

答案 1 :(得分:4)

非常简单,只需将透明图像设置为图标即可。在这里我设置了一个1x1透明GIF - pixel_trans.gif - 当点击MarkerWithLabel时作为Icon:

var marker = new MarkerWithLabel({
...
});

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

Viola,点击标记时会隐藏标记,但标记会立即显示。 可以隐藏图标,只显示MarkerWithLabel current version中的标签。


注意:您必须先传送有效图像,然后再进行操作,例如存在的图像。将setIcon与null或无效图像一起使用将被忽略。 1x1透明gif是一种可接受的解决方案,因为用户将拥有隐藏标记的经验,并且在尝试点击它时会遇到麻烦:)