在屏幕上绘制Google地图多边形时,是否有通知方式?
我有几百个点的可编辑多边形,它们需要一段时间才能在屏幕上显示(大约一秒钟)。我想添加一些" loading"然后在显示可编辑多边形时,隐藏通知。
我已尝试过以下操作,但由于多边形上没有load
事件,因此无效。
google.maps.event.addDomListener(gPolygon, 'load', function () {
alert("addDomListener -- LOAD");
});
google.maps.event.addListener(gPolygon, 'load', function () {
alert("addListener -- LOAD");
});
我唯一的选择是设置某种计时器并尝试猜测多边形的显示时间。
答案 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);
}