Все, что вам нужно сделать, это установить параметр clickable: false
в конструкторе GPolygon
, как показано в следующем примере ( GPolygonOptions: Справочник по API ):
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps Non Clickable Polygon Demo</title>
<script src="http://maps.google.com/maps?file=api&v=2&sensor=false"
type="text/javascript"></script>
</head>
<body onunload="GUnload()">
<div id="map" style="width: 450px; height: 300px"></div>
<script type="text/javascript">
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
GEvent.addListener(map, "click", function(overlay, latlng) {
var lat = latlng.lat();
var lon = latlng.lng();
var latOffset = 0.01;
var lonOffset = 0.01;
var polygon = new GPolygon([
new GLatLng(lat, lon - lonOffset),
new GLatLng(lat + latOffset, lon),
new GLatLng(lat, lon + lonOffset),
new GLatLng(lat - latOffset, lon),
new GLatLng(lat, lon - lonOffset)
], "#f33f00", 5, 1, "#ff0000", 0.2, { clickable: false });
map.addOverlay(polygon);
});
</script>
</body>
</html>
Снимок экрана с доказательствами:
Обратите внимание, что событие click(overlay: GOverlay, latlng: GLatLng, overlaylatlng: GLatLng)
передает различные аргументы в зависимости от контекста клика и от того, произошел ли клик в оверлейном клике.Если щелчок не происходит при наложении, активируемом щелчком, аргумент overlay
равен null
, а аргумент latlng
содержит географические координаты точки, по которой щелкнули.Если пользователь нажимает на оверлей, который можно кликнуть, аргумент overlay
содержит объект оверлея, а аргумент overlaylatlng
содержит координаты наложенного клика ( Источник: API Reference ).