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

标签 javascript google-maps google-maps-api-3 google-maps-markers

我正在使用谷歌地图 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/

相关文章:

javascript - 减少全局变量并保持函数流程

javascript - 未捕获的类型错误 : Cannot read property 'zIndex' of undefined in Ionic (AngularJS)

javascript - setTimeout 在 jQuery 插件中不起作用

javascript - 如何测试指令是否发出事件

google-maps - 美国的默认中心?

javascript - 在 vue2-google-maps 中围绕一个点画一个圆圈

google-maps - 如何实现谷歌地图按街道名称、城市搜索?

javascript - router.delete 返回空数组

javascript - 如何将文本框中的值保存到变量

android - findViewByID 突然返回 null