高度データを得る方法
最終更新日19 Jan 2016 05:57
Google Elevation APIを利用する場合
Google Map API V3のgoogle.maps.ElevationService
あるいは。
Google Earth COM API
で取得出来るらしい。
URLを作るだけで高度がゲットできる。
たとえば、このレーダーを取得した位置 緯度 35.8431139 経度139.406984の位置を取得したかったらこうする。
http://maps.googleapis.com/maps/api/elevation/xml?locations=35.843113,139.406984&sensor=false
sensor、というのはURLをリクエストする機器がGPSセンサーを持っているかどうか。たとえば携帯電話から発するならsensor=trueにする。
パソコンからリクエストする場合はセンサーがないからどうでもいいのだが、
sensor=false or falseがないとREQUEST_DENIEDというエラーになる、ので仕方なく書いた。
xmlのところをjsonにすればJSON形式のデータにもできる。
http://maps.googleapis.com/maps/api/elevation/xml?locations=緯度,経度&sensor=false
そして、このURLからこのようなデータを得ることが出来る。
<status>OK</status> <result> <location> <elevation>92.7716980</elevation> <resolution>152.7032318</resolution> </result> </ElevationResponse>
複数の緯度経度を得たいなら | で区切る。
locations=39.7391536,-104.9847034|36.455556,-116.866667
参考にしたサイト:Google ElevationAPI
緯度経度を小数にするには
153°59′11″
読み方は
153度59分11秒
である。
60分=1度
3600秒=1度
小数に変換したかったらこうする
使用制限
Yahoo | ||
---|---|---|
1日あたりのURLリクエスト数 | 2500 | |
1回のリクエストの地点数 | 512 | 100 |
1日あたりの地点数 | 25000 | |
1回のURLの文字数 | 20481 | 2048 |
緯度経度の最大精度2 | 小数点以下 6 桁 |
google mapの1回のURLの文字数は2048と書いてあるけど実際に2048文字のURLをリクエストしたら
HTTP Error 414:Request-URI Too Large
のエラーになる
1916文字だってウワサもある
私の実験によると1916でもだめで1800はokだった。
国土地理院の場合
国土地理院基盤地図データのダウンロードサイト
ID,パスワードは以下の通りです。
抜群に精度がよさそうだけど、決められた範囲に分かれてるので、あとで好きにデータを統合するのが面倒くさい。
日本の緯度経度の範囲
区 分 | 場 所 | 世界測地系 | 日本測地系 | ||
---|---|---|---|---|---|
経 度 | 緯 度 | 経 度 | 緯 度 | ||
最 東 端 | 東京都南鳥島 | 153°59′11″ | 24°16′59″ | 153°59′25″ | 24°16′42″ |
最 西 端 | 沖縄県 与那国島 | 122°56′01″ | 24°26′58″ | 122°55′59″ | 24°26′38″ |
最 南 端 | 東京都 沖ノ鳥島 | 136°04′11″ | 20°25′31″ | 136°04′20″ | 20°25′14″ |
最 北 端 | 北海道 択捉島 | 148°45′14″ | 45°33′28″ | 148°45′30″ | 45°33′19″ |
大体(26.0,126,4)-(47.8,152.8)かな
取得した高度をどのように正規化するか??
値はメートル単位で返ってくる
<result> <location> <lat>34.8700000</lat> <lng>137.5800000</lng> </location> <elevation>193.0723267</elevation> <resolution>610.8129272</resolution> </result>
データとしてしまっておくとき、
またはレンダリングする際に、正規化してバイナリで保存したいけど、
どんな風に正規化したらいいかな?
ちなみに関東周辺の範囲の高度は
最小=-2089.540772,最大=2484.944092
だった。
地球の最大深度は6000m以上
日本海溝の最も深いところは8020m[2]
エベレストの最高標高は8848m
富士山の標高は3776 m
実際にGoogle Elevation APIで得られた結果は
緯度経度(23.0,126,0)~(50.0,153.0)の範囲の高度は
だった最深い=-9564.059570,最高い=2514.288574m
heghtmapを作ってみたらこうなりました

フルソースコードはgitで!