2012-05-05 3 views
3

Google Earth APIが場所の正確な高度を取得したと判断する方法を教えてください。地上高度を確実に取得する

Google EarthプラグインAPIは、地上高度を取得するには、以下の方法があります

double GEGlobe.getGroundAltitude(double lat, double lon) 

しかし、この機能は、ターゲット緯度、経度からカメラまでの距離に応じて異なる結果を返します。例えば位置に対する真高度である場合:異なるカメラ位置でgetGroundAltitudeの

リターン値:

カメラ位置から異なる距離にあるときに関数を呼び出す181.60

は、以下の高度を返します

-19.38(カメラは非常に遠い場所からである)

06.11(カメラは今近い)

89.13(...)

166.82

177.47

181.53(カメラは現在の位置にv.closeれる)

戻り値181.53は問題がある181.60

の真の高度に十分近いですプログラムが確実に最も正確な標高を得たと判断する方法は?

答えて

2

これはGoogle Earthの落とし穴の1つです。地上高度は、その与えられた地点で利用可能な画像の品質に依存します。だから、イメージが良い、価値が正確になります、イメージが悪い場合は、値が悪いことができます。

getStreamingPercent()の画像の読み込み量を確認することができます。地上高度の値は、ストリーミングの割合が高くなるほど正確になるはずです。

GoogleのElevation APIを使用することができます。このAPIは実際に外部サーバー(データが読み込まれていない場所)からデータを取得するために呼び出されます。この方法の欠点は、それは心に留めておくべきことです。

https://developers.google.com/maps/documentation/elevation/

編集

getGroundAltitude()コールは非常に凝り性であることを、覚えておくべきもう一つ。地球上の単一点の値を取得しようとしていますが、エラーチェックはあまり適切ではありません(つまり、点X、Yの値がわからない可能性があります。 X、Yは有効なデータを持っています。)

+0

それは私の疑問に答えました。ありがとうございました! –

+0

"しかし、それは非常に良いエラーチェックがありません" - あなたが意味するものを参照してください。ドキュメントの 'getGroundAltitude'は、その場所の標高データがまだロードされていない場合にゼロを返します。この方法でうまくいけば(それがNaNを返すと、より良いことになります)、私にとっては役に立ちました。 'getGroundAltitude'は、画像である主要部分に対する相補データのようです。あなたが言ったように、私はGoogleの標高APIを見てきました。私は[Map Quest](http://open.mapquestapi。)を見てきました。com/elevation /)を使用して、仰角および他のそのような地球データを読み取るためのウェブエンドポイントを提供する。 –

+0

MapQuestは他の人に便利です:MapQuestはWebサービスを持ち、ブラウザベースのJavaScript(MapQuestはコールバック関数の中にラップされたデータを返すことができます)に便利なJSONPをサポートしています。 Google ElevationサービスはJSONPコールバックをサポートしていないようです。 MapQuestの高度は、Google Elevation Serviceとは時々最大+ 11/-11メートル異なります。時には、時には、時には、時には、時には、時には、ほとんど同じです。これは必ずしも正確であるとは言えません。それは専門家によってよりよく答えるだろう。結局のところ私の推測では、どちらもデータをある程度補間しているということです。 –

関連する問題