在谷歌地图上绘制折线时禁用POI

时间:2015-11-27 16:19:00

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

我在谷歌地图v3上设置了一个mousedown监听器来绘制折线。

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侦听器。

我可以这样做吗?

3 个答案:

答案 0 :(得分:4)

不知道这是否仍然相关,但是当你想要禁用clicks时,你现在可以简单地在地图对象上调用setClickableIcons(false)方法。如果你想重新打开它们,只需给方法一个真实的相反的论点。

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

答案 1 :(得分: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禁用和/或重新启用

答案 2 :(得分:0)

暂时在地图上放置一个透明div以捕获点击/鼠标事件,在该折线完成后,使用该div上的鼠标事件绘制折线,将其移除(或将其取出)。