gpt4 book ai didi

google-maps - 如何通过叠加层检测谷歌地图上的点击事件?

转载 作者:行者123 更新时间:2023-12-03 22:20:23 24 4
gpt4 key购买 nike

我的问题是我有一个圆形 map 覆盖,但我希望能够通过单击 map 来移动圆圈以设置新中心,实际问题是当我单击覆盖并调用我的方法'setCenter(overlay, latlng) ' ,我得到未定义的 latlang 和有效的覆盖。

这是一个可以说明问题的示例,如果单击 map ,则会绘制多边形,如果单击多边形内部,则不会绘制新的多边形,如果单击 map 上的其他任何位置,则会绘制多边形
http://code.google.com/apis/maps/documentation/examples/polygon-simple.html

我希望能够单击多边形并绘制一个新的多边形,使它们重叠

谢谢

最佳答案

您需要做的就是设置 clickable: false GPolygon 中的选项构造函数,如以下示例(GPolygonOptions: API Reference):

<!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&amp;v=2&amp;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>

有证据的截图:

Google Maps Non Clickable Polygon Demo

请注意 click(overlay: GOverlay, latlng: GLatLng, overlaylatlng: GLatLng)事件根据点击的上下文传递不同的参数,以及点击是否发生在可点击的叠加层上。如果在可点击的叠加层上没有点击, overlay参数是 nulllatlng参数包含被点击点的地理坐标。如果用户点击一个可点击的覆盖, overlay参数包含覆盖对象,而 overlaylatlng参数包含点击覆盖的坐标 ( Source: API Reference)。

关于google-maps - 如何通过叠加层检测谷歌地图上的点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2488192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com