gpt4 book ai didi

javascript - 谷歌地图圈子位置错误

转载 作者:行者123 更新时间:2023-12-02 17:50:46 26 4
gpt4 key购买 nike

我正在使用谷歌地图 API。允许用户移动圆(拖放)并保存移动后的圆坐标。

我面临的问题是 - 每当用户移动圆圈并保存坐标,然后当我使用新坐标重新加载 map 时,我会找到从我保存的位置移动的圆圈的坐标。

每当我按住圆心拖放圆时,这种情况都不会发生。当我使用圆心以外的点进行拖放时,它会将该点视为圆心并保存相应的坐标。

如何限制 API 在移动圆时考虑圆的实际中心,而不管我使用圆内的哪个点来拖放它。

我正在使用以下代码:

google.maps.event.addListener(cityCircle, 'drag', function (event) {

lat = event.latLng.lat();
longi = event.latLng.lng();

var coordinatelat = event.latLng.lat()
var coordinatelng = event.latLng.lng()

var coordinatelat = lat;
var coordinatelng = longi;

});

我需要使用center_changed事件来获取实际的中心吗?

任何建议或答案都会有帮助。

最佳答案

您可以使用center_changed来获取新的中心。事件参数没有任何信息,但事件处理程序的对象有。例如:

cityCircle = new google.maps.Circle(populationOptions);

google.maps.event.addListener(cityCircle, 'center_changed', function (event) {
var newCenter = cityCircle.getCenter();

console.log('center changed: ' + newCenter.lat() + ', ' + newCenter.lng());
});

更新:

博士。 Mole 是对的:使用 dragend 事件只会触发一次,而不是使用 center_changed 触发多次。事件监听器的设置几乎是一样的:

google.maps.event.addListener(cityCircle, 'dragend', function (event) {
var newCenter = cityCircle.getCenter();

console.log('dragend / center changed: ' + newCenter.lat() + ', ' + newCenter.lng());
});

如果两个事件监听器均已设置,则输出:

...
center changed: 31.91761223410637, -107.25973130019952
center changed: 31.91761223410637, -107.25973130019952
center changed: 31.842939049148193, -107.26041549041304
center changed: 31.842939049148193, -107.26041549041304
center changed: 31.842939049148193, -107.34830611541304
center changed: 31.842939049148193, -107.34830611541304
center changed: 31.842939049148193, -107.34830611541304
center changed: 31.842939049148193, -107.34830611541304

dragend / center changed: 31.842939049148193, -107.34830611541304

关于javascript - 谷歌地图圈子位置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374199/

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