国土地理院の標高API
国土地理院のWebサービスである標高APIは、緯度経度を送るとその地点の標高を返してくれる便利なサービス。
http://portal.cyberjapan.jp/portalsite/info/dem.html
Google Maps APIでも標高を取得できますが、日本国内なら国土地理院のデータがより確実でしょう。
JavaScriptで取得する場合は次のようなコードで取得できます。
関数に緯度と経度を渡すと、標高とデータソースが取得できます。
function getAltitude(lon, lat){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr.status === 200){
var json_data = eval( '('+xhr.responseText +')');
var txt = xhr.responseText + '\n\n';
txt += '標高:' + json_data.elevation + 'm\n';
txt += 'データソース:' + json_data.hsrc + '\n';
txt += '経度:' + lon + '\n';
txt += '緯度:' + lat + '\n';
var result = document.getElementById('data_result');
result.value = txt;
}
};
var url = "http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?lon=" + lon + "&lat=" + lat +"&outtype=JSON";
xhr.open('GET', url);
xhr.send(null);
};
実際に試したい方はこちら
※現在このサンプルは動きません。CORSによる制限と思われます。
ただし、IEでローカルで実行した場合は、なぜか取得できます。
http://portal.cyberjapan.jp/portalsite/info/dem.html
Google Maps APIでも標高を取得できますが、日本国内なら国土地理院のデータがより確実でしょう。
JavaScriptで取得する場合は次のようなコードで取得できます。
関数に緯度と経度を渡すと、標高とデータソースが取得できます。
function getAltitude(lon, lat){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr.status === 200){
var json_data = eval( '('+xhr.responseText +')');
var txt = xhr.responseText + '\n\n';
txt += '標高:' + json_data.elevation + 'm\n';
txt += 'データソース:' + json_data.hsrc + '\n';
txt += '経度:' + lon + '\n';
txt += '緯度:' + lat + '\n';
var result = document.getElementById('data_result');
result.value = txt;
}
};
var url = "http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?lon=" + lon + "&lat=" + lat +"&outtype=JSON";
xhr.open('GET', url);
xhr.send(null);
};
実際に試したい方はこちら
※現在このサンプルは動きません。CORSによる制限と思われます。
ただし、IEでローカルで実行した場合は、なぜか取得できます。
この記事へのコメント
またDelphiのWebBrowserでも動きました。
更にDelphiからGetAltitude(Lon,Lat)を送っても動きました。
Delphiで表示された地理院の地図をクリックして精度の高い標高を取得するソフトを作ろうと探していたので大変参考になりました。でも出てきた標高をDelphiで受け取る方法がわからずにいます。(WebBrowser1.CommandStateChangeが反応しない)
もしも簡単にできるものであれば教えてください。
ここしばらくJavaScriptで何とか標高が取得できるサンプルなどを探していましたが貴サイトに出会えて本当に助かりました。 お礼まで
大体同じコード書いてても自分のは動かないので何でかと思ったけど、多分ドキュメントモード次第ですね。