Javascript Google Maps API-API/JSON加载的事件侦听器?
我正在制作一个地图,通过JSON中的RESTAPI加载一些区域高亮显示。这个JSON非常大,所以我想在地图上放置一个加载屏幕,直到API调用返回。我试过:Javascript Google Maps API-API/JSON加载的事件侦听器?,javascript,json,google-maps,Javascript,Json,Google Maps,我正在制作一个地图,通过JSON中的RESTAPI加载一些区域高亮显示。这个JSON非常大,所以我想在地图上放置一个加载屏幕,直到API调用返回。我试过: document.getElementById('spinner').style.visibility = "visible"; map.data.loadGeoJson(mapurl); document.getElementById('spinner').style.visibility = "hidden"; 但是很明显,加载是异步进
document.getElementById('spinner').style.visibility = "visible";
map.data.loadGeoJson(mapurl);
document.getElementById('spinner').style.visibility = "hidden";
但是很明显,加载是异步进行的,所以这并没有实现任何效果
二审:
document.getElementById('spinner').style.visibility = "visible";
map.data.loadGeoJson(mapurl);
google.maps.event.addListener(map, 'idle', function(){
document.getElementById('spinner').style.visibility = "hidden";
})
这要好得多,现在我有了一个加载屏幕,但是,
idle
在映射加载后立即被调用,而不是JSON。有没有一种方法可以监听JSON文件被完全加载的事件/API调用返回?我不太明白他们想要做什么,我假设在加载地图后,我想要一个ajax查询,要执行此操作,请声明一个函数(init)并将其添加到google maps标记中作为回调,如下所示:
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=init" async defer></script>
loadGeoJson
接受一个可选的回调,该回调将在加载所有功能后触发,即map.data.loadGeoJson(mapurl,回调)
。因此,将您的回调放在那里。我已经找到了解决方案(与AJAX没有太多关系),因此我将我的问题标记为重复。
function init(){
// Load ajax
}