2016-08-31 11 views
0

maps.data.loadGeoJson()を使用してフィーチャーコレクションをマップにロードしています。残念ながら、私のデータソースは時折、無効なGeoJsonオブジェクトを返します(フィーチャは空の配列ではなくヌルです)、InvalidValueErrorをスローします。geoJSONをデータレイヤーにロードするときに例外をキャッチする方法

そのデータの例:

{"type":"FeatureCollection","features":null} 

私はこのエラーをキャッチできるようにしたいのですが、しかしloadGeoJson()は、非同期呼び出しは、例外がスローされた時間であるので、私はすでに終了していますtryブロック。私は(Is it possible to catch exceptions thrown in a JavaScript async callback?)これを処理する方法はtry/catchブロックをコールバックに置くことであることを読んだことがあります。

私はtryブロックの条件として何を設定するべきかよく分かりません。

map.data.loadGeoJson(url ,null, 
    function(data){ 
     try(what_exactly){ 

     }catch(e){ } 
    } 
); 

これは正しいアプローチですか、間違ったボートですか?私が間違ったボートに乗っているなら、それは正しいものですか?

ありがとうございます!

答えて

0

loadGeoJsonの代わりにaddGeoJsonを使用してください。

  • loadGeoJson
    • URLからロードにGeoJSON、およびコレクションに機能が追加されています。
    • 戻り値:なし
  • addGeoJson
    • 追加にGeoJSONはコレクションにしています。このメソッドに解析されたJSONを与えます。インポートされたフィーチャが返されます。 GeoJSONをインポートできなかった場合は例外をスローします
    • 戻り値:配列< Data.Feature>

ここaddGeoJson約コードの実装を提供する関連SO questionあります。

希望すると便利です。

+0

もう少し仕事がありましたが、それはトリックでした! – jerome

関連する問題