Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Maps API-API/JSON加载的事件侦听器?_Javascript_Json_Google Maps - Fatal编程技术网

Javascript Google Maps API-API/JSON加载的事件侦听器?

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"; 但是很明显,加载是异步进

我正在制作一个地图,通过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);
    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
}