gpt4 book ai didi

javascript - GOOGLE MAP API v3,需要路径的多边形

转载 作者:行者123 更新时间:2023-11-30 12:41:42 26 4
gpt4 key购买 nike

我使用的是 google maps v3,我的问题是我在一张 map 上有 200 多个多边形,它们都是可编辑的,我需要在事件监听器中进行 ajax 调用以更改使用路径而不是多边形来检测变化。

那么在回调函数this = polygon.getPath()中,如何获取它所属的多边形。在多边形中,我使用 set 来设置 ajax 调用所需的信息。

    poly1.set('name', 'poly1');
poly1.set('id', 1);

google.maps.event.addListener(poly1, 'dragend', setNewArea);
google.maps.event.addListener(poly1.getPath(), 'insert_at', setNewArea);
google.maps.event.addListener(poly1.getPath(), 'remove_at', setNewArea);
google.maps.event.addListener(poly1.getPath(), 'set_at', setNewArea);

所以在 setNewArea 中,我可以很容易地检查它是多边形还是路径,但如果是路径,我就无法为其获取父多边形。我不想有 200 个自定义回调只是为了对 poly 进行硬编码,必须有其他更简洁的方法。

最佳答案

执行此操作的一种方法是将对 poly1 的对象引用添加到分配的回调中。这是我使用 map API 编写的一些代码,它为打开信息窗口的特定标记上的单击事件添加了一个监听器。

var latLng = new google.maps.LatLng(lat,lng);

var marker = new google.maps.Marker({
position: latLng,
map: window.map,
title: pinName
});

var infoWindow = new google.maps.InfoWindow({
content: content
});

google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(window.map, marker);
});

因此,对于您的示例,您可能想要执行如下所示的操作。这将确保您的回调函数获得对多边形对象的引用,即使触发事件与路径相关。

poly1.set('name', 'poly1');
poly1.set('id', 1);

google.maps.event.addListener(poly1, 'dragend', function() {
setNewArea(poly1);
});
google.maps.event.addListener(poly1.getPath(), 'insert_at', function() {
setNewArea(poly1);
});

关于javascript - GOOGLE MAP API v3,需要路径的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24210849/

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