2017-03-03 14 views
0

私は、JSONのREST API経由でいくつかのエリアのハイライトをロードするマップを作成しています。このJSONは非常に大きいので、API呼び出しが返るまで、マップに読み込み画面を配置したいと思います。Google Maps API - API/JSONロードのイベントリスナー?

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"; 
}) 

これは、今、私はJSONをただし、idleが右マップ負荷後に呼び出される、ロード画面を持っていますが、ではない、はるかに優れています。 JSONファイルが完全にロードされる/ API呼び出しが返されるというイベントを聞く方法はありますか?

+1

'loadGeoJson'は、すべての機能がロードされている、すなわち、' map.data.loadGeoJson(mapurl、コールバック)を1回発射されるオプションのコールバックを受け入れ、このような'。だから、そこにあなたのコールバックを置く。 –

答えて

0

私は彼らが何をしたいのか分かりません、私は地図をロードした後、これを行うには、関数(init)を宣言し、コールバック、何か

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=init" async defer></script> 

あなたの関数::

function init(){ 
    // Load ajax 
} 
+0

私は解決策を見つけました(AJAXとあまり関係ないので)、私は自分の質問を重複としてマークしました。 –