【发布时间】:2020-12-17 02:09:52
【问题描述】:
我有一个简单的谷歌地图,当我点击它时,我希望触发警报:
let map;
function initMap() {
map = new google.maps.Map(document.getElementById("map"), {
center: { lat: -34.397, lng: 150.644 },
zoom: 8,
});
const triangleCoords = [
{ lat: -34.397, lng: 150.644 },
{ lat: -33.5, lng: 152 },
{ lat: -34.4, lng: 149 },
];
const triangle = new google.maps.Polygon({
paths: triangleCoords,
});
triangle.setMap(map);
google.maps.event.addListener(map, "click", (e) => {
alert('there was a click')
const result = google.maps.geometry.poly.containsLocation(
e.latLng,
triangle
);
if(result)alert('inside triangle')
else alert('outside triangle')
});
}
但是,当我单击多边形时,不会触发事件,也不会触发警报。在多边形之外它确实有效。
我做错了什么?
【问题讨论】:
-
如果你删除
triangle.setMap(map),这可行,但你不会有突出显示的区域。 setMap 可能正在创建所选区域的新地图,它会覆盖现有的事件侦听器。因此,您将不得不再次为此添加事件侦听器。您也可以检查 setMarker 而不是使用它。
标签: javascript google-maps polygon