何时加载多边形时通知

时间:2015-07-15 23:19:24

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

在屏幕上绘制Google地图多边形时,是否有通知方式?

我有几百个点的可编辑多边形,它们需要一段时间才能在屏幕上显示(大约一秒钟)。我想添加一些" loading"然后在显示可编辑多边形时,隐藏通知。

我已尝试过以下操作,但由于多边形上没有load事件,因此无效。

            google.maps.event.addDomListener(gPolygon, 'load', function () {
               alert("addDomListener -- LOAD");
            });
            google.maps.event.addListener(gPolygon, 'load', function () {
               alert("addListener -- LOAD");
            });

我唯一的选择是设置某种计时器并尝试猜测多边形的显示时间。

1 个答案:

答案 0 :(得分:1)

我使用以下代码对真正的长多边形(125000点)进行了测试:

> console.log(new Date().getTime());p.setMap(map);console.log(new Date().getTime())
1437051805161
1437051805229
< undefined

由于时间差异很大(68 ms),与仅有两个日期的1 ms差异相比,我认为google.maps.Polygon.setMap是同步的。这意味着可以将事件作为setMap命令之后的另一个代码块来触发。

如果您愿意,可以创建prototype功能:

google.maps.Polygon.prototype.setMapListener(map, func, args){
  this.setMap(map);
  func(args);
}