2015-11-27 59 views
1

我在谷歌地图v3上设置了mousedown监听器来绘制折线。在谷歌地图上绘制折线时禁用POI

map.setOptions({ 
    draggable: false, 
    zoomControl: false, 
    scrollwheel: false, 
    disableDoubleClickZoom: true, 
    disableDefaultUI: true 
}); 

google.maps.event.addDomListener(map.getDiv(),'mousedown',function(e){ 
    drawPolyline() 
}); 

如果图形在google的POI上完成,则说明气泡打开并杀死我的函数行为。

如果我使用其中一个内置工具(绘制多边形),则所有POI侦听器都被禁用。

我可以这样做吗?

回答

4

不知道这是否仍然相关,但是您现在只需在要禁用点击的情况下调用地图对象上的setClickableIcons(false)方法即可。如果要将它重新打开,只需将方法真正的论据。

看一看这个演示中,我准备: http://jsbin.com/liyamecoqa/edit?html,output

1

您可以禁用POI这样

  var mlwStyles =[ 
       { 
        featureType: "poi", 
        elementType: "labels", 
        stylers: [ 
          { visibility: "off" } 
        ] 
       } 
      ]; 
      var mapOptions = { 
       center: new google.maps.LatLng(initLat, initLng), 
       zoom: initZoom, 
       mapTypeId: google.maps.MapTypeId.SATELLITE, 
       mapTypeControl:false, 
       scaleControl: true, 
       tilt: 0, 
       styles: mlwStyles     
      }; 

最终你可以使用setOptions禁用和/或重新启用时,您绘制多边形

+0

我希望禁用POI的点击收听。您的示例将隐藏POI,我需要随时显示它们。 – gil

+1

我认为你不能这样做,因为你只能使用POI对象而不能使用它们的行为。,Google不打算让图标(POI)在没有可点击性的情况下显示。请参阅http://stackoverflow.com/问题/ 7478069/google-map-api-v3-disable-point-of-interest-info-window https://code.google.com/p/gmaps-api-issues/issues/detail?id=3866 – scaisEdge

0

暂时放在一个透明的DIV在地图上,捕捉点击/鼠标事件中,使用该div上的鼠标事件绘制多段线,一旦多段线完成,将其移除(或将其取消)。