2015-11-27 118 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上的鼠標事件繪製多段線,一旦多段線完成,將其移除(或將其取消)。