2

我有以下代碼來突出顯示使用javascript v3 api的谷歌地圖上的區域。禁用點擊多邊形

// Maps 
$(document).ready(function(){ 
    if($(document).find("map_canvas")) 
     Maps.init(); 
}); 
var Maps = {}; 
//The map to display 
Maps.map; 
//List of markers 
Maps.markers = new Array(); 
Maps.markers.previous; 
Maps.lines = new Array(); 
Maps.lines.toStart; 
Maps.area; 
//init the map 
Maps.init = function() { 
    var mapOptions = { 
     center: new google.maps.LatLng(-39.483715,176.8942277), 
     zoom: 15, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    Maps.map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 

    google.maps.event.addListener(Maps.map, 'click', function(event){Maps.addMarker(event.latLng);}); 
} 
//Add a marker to the maps 
Maps.addMarker = function(latLng){ 
    var marker = new google.maps.Marker({ 
     position: latLng, 
     map: Maps.map 
    }); 
    Maps.markers.push(latLng); 
    console.log(Maps.markers.length); 
    if(Maps.markers.length > 1){ 
     Maps.drawLine([Maps.markers.previous, latLng]); 
    } 
    Maps.markers.previous = latLng; 
} 

Maps.drawLine = function(path){ 
    var Line = new google.maps.Polyline({ 
     path: path, 
     strokeColor: "#FF0000", 
     strokeOpacity: 1.0, 
     strokeWeight: 2 
    }); 
    Line.setMap(Maps.map); 
    if(Maps.markers.length > 2){ 
     if(Maps.lines.toStart != null) 
      Maps.lines.toStart.setMap(null); 
     Maps.lines.toStart = new google.maps.Polyline({ 
      path: [path[path.length - 1], Maps.markers[0]], 
      strokeColor: "#0000FF", 
      strokeOpacity: 1.0, 
      strokeWeight: 2 
     }); 
     Maps.lines.toStart.setMap(Maps.map); 
     if(Maps.area != null) 
      Maps.area.setMap(null); 
     Maps.area = new google.maps.Polygon({ 
      paths: Maps.markers, 
      strokeColor: "#000000", 
      strokeOpacity: 0, 
      strokeWeight: 0, 
      fillColor: "#FF0000", 
      fillOpacity: 0.35 
     }); 
     Maps.area.setMap(Maps.map); 
    } 
} 

它完全按預期的方式產生的結果,像這樣....

enter image description here

但問題是,是,我需要增加的原因很明顯的多邊形內部的標記。當我點擊希望添加標記的多邊形時,該多邊形似乎獲得了點擊而不是地圖。無論如何要解決這個問題嗎?或者讓它只有地圖接收點擊?

回答

9

多邊形選項中有一個clickable屬性。將其設置爲false,多邊形將忽略點擊,並且事件將落入地圖。

Polygon Options

+0

甜如。應該做的伎倆 – FabianCook