谷歌地图上是否存在GeoJSON加载事件

Is there a GeoJSON load event on Google Maps?

本文关键字:加载 事件 GeoJSON 存在 是否 谷歌地图      更新时间:2023-09-26

我目前正在制作一张地图,使用GeoJSON加载国家边界和信息,以及一些本应附加到这些国家的内部数据。数据位于通过以下代码加载的两个数据层中:

Data[MapType] = new google.maps.Data();
Data[MapType].loadGeoJson(jsonPath, {idPropertyName:geoJSONID});
Data[MapType].setStyle(dataStyle);
Data[MapType].setMap(Map);

它运行良好,数据正在加载,鼠标悬停事件处理程序响应良好。然而,我想在geoJSON文件完成加载和显示时隐藏加载程序覆盖,但到目前为止,我还没有找到监听这种事件的方法。

我在另一个stackoverflow线程上看到了KML关于侦听metadata_changed事件的内容,但它在我的映射中没有触发任何内容。API参考也没有多大帮助。

你们中有人知道如何知道geoJSON数据何时完成加载和显示吗?

非常感谢。

地图对象有一个idle状态,应该能够访问它,比如:

google.maps.event.addListenerOnce(map, 'idle', function() {
    console.log('loaded');
});  

这个问题扩展了datafunk的答案,并提供了一个利用空闲状态的解决方法。(本应添加为注释,但用于链接)