3

我目前正在使用Google地图标记和标签控件。我可以动态地为地图分配一个标记,并为该标记提供一个标签。在Google地图上使用MarkerWithLabel隐藏标记

我已经想通了如何隐藏标签,但是,我对如何隐藏图标并显示标签有点遗憾。任何人对此有一些建议?

markerWithLabel.setMap(null); 

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

+0

你能分享你迄今为止所做的一切吗?你是什​​么意思的标签.. –

+0

如果你想单独控制他们,你可能需要修改该代码。或者将标签放在地图上而不依赖于标记(例如,使用[InfoBox作为标签](http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/examples/infobox-label .html)和一个正常的google.maps.Marker标记) – geocodezip

回答

3

很简单,只需设置一个透明的图像作为图标。在这里我设置一个1x1的透明GIF - pixel_trans.gif - 作为图标点击MarkerWithLabel时:

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

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

中提琴,被点击时它的标记是隐藏的,但标签的立场。它是而不是可能隐藏图标,并且只显示MarkerWithLabel的current version中的标签。


注意:你要通过在此之前是去工作,如存在图像的有效图像。使用setIcon使用null或无效图像将被忽略。一个1x1的透明GIF恕我直言,是一个可接受的解决方案,因为用户将有丰富的经验,该标记是隐藏的,并有啊***努力一下就可以了:)

+0

@barry MSIH答案应该标记为正确的方式 –

11

我能够隐藏一个麻烦通过将图标设置为空字符串“”来标记。

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

非常干净的解决方案。奇怪的是,它的工作原理 - 这似乎根本不需要任何东西(如果不存在的路径将在大量的404请求中解析)。 – cspiegl