在Google地图圈子对象移动之前进行说明,然后再将其显示

时间:2015-06-25 16:36:46

标签: javascript angularjs google-maps google-maps-api-3

问题

我的细分是这样的。当我拖动地图(Google Maps Javascript API)时,我希望在地图中心渲染的圆圈消失。拖动完成后,我希望圆圈移动到新中心 BEFORE 再次变为可见。

最终发生的事情是圆圈变得可见然后猛然移动到新位置,即使我将它们一个接一个地设置(设置位置,然后改变可见性。)

尝试

以下是我为此细分使用的代码:

control.getCircle().setCenter(latLng(latitude, longitude));
control.getCircle().setVisible(true);

其中latLng是我用来获取LatLng对象的包装函数,而control是来自angular-google-maps的控制对象。

即使setCenter是第一个,圆圈在移动之前仍然可见。我能做些什么吗?我试图将它包装在一个承诺,回调等等中,但似乎没有什么可以做到的。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用事件center_changed,事件idle或事件dragstart

的听众
google.maps.event.addListener(map, 'center_changed', function() {
    control.getCircle().setCenter(latLng(latitude, longitude));
});

google.maps.event.addListener(map, 'dragstart', function() {
    control.getCircle().setVisible(false);
});

google.maps.event.addListener(map, 'idle', function() {
    control.getCircle().setVisible(true);
});