
緯度,経度から標高値をJSONP形式で出力します。単位はメートルです。
標高値はNASAのSRTM30を用いています。約900mメッシュの解像度なので,実際の感覚のような詳細な地形は十分に表現できていない可能性があります。つまり,だいたいの高さが表現されていると考えれば良いと思います。SRTM3のAPIではデータの解像度が高く,データ量が大きいことから,範囲を日本周辺に限っていますが,このデータは南極を除く全世界に対応しています。
データについての説明はドキュメントをご覧ください。
lat: 緯度 (-60 - 90度,マイナスは南緯を表す)
lon: 経度 (-180 - 180 度, マイナスは西経を表す)
http://webmodis.iis.u-tokyo.ac.jp/~tagchan/srtm30/elevation.php?lon=138.72986&lat=35.36302
フォーマットはJSONPです。
elevationApi({
"elevation" : "3560",
"latitude" : "35.363022",
"longitude" : "138.729858",
"data" : "SRTM30"
});
ソースコードは(dem_value.c)こちらにあります。
クリックすると,標高値が表示されます。地図左下には検索フォームがあるので,気になる場所を検索して移動し,地図をクリックしてみてください。標高が表示されます。
//<![CDATA[
var map;
var marker;
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GScaleControl());
map.addMapType(G_PHYSICAL_MAP);
map.addControl(new GMenuMapTypeControl(true, false));
map.enableScrollWheelZoom();
map.enableGoogleBar();
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(34.985776660457525, 135.75848579406738), 7, G_PHYSICAL_MAP);
var icon = new GIcon();
icon.image = "http://www.google.com/intl/en_ALL/mapfiles/arrow.png";
icon.shadow = "http://www.google.com/intl/en_ALL/mapfiles/arrowshadow.png";
icon.iconSize = new GSize(39, 34);
icon.shadowSize = new GSize(39, 34);
icon.iconAnchor = new GPoint(10, 34);
GEvent.addListener(map, 'click', function(overlay, point){
getJSON(point.lat(), point.lng());
addMarker(point,icon);
});
}
}
function getJSON(lat, lon) {
var req_url = "http://webmodis.iis.u-tokyo.ac.jp/~tagchan/srtm/elevation.php?lat="+lat+"&lon="+lon+"";
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = req_url;
document.getElementsByTagName("head")[0].appendChild(script);
return;
}
function elevationApi( obj ){
var lat = obj.latitude;
var lon = obj.longitude;
var elevation = obj.elevation;
var html = "Location Lat:"+ lat +", Lon:"+ lon +"<br>Elevation: "+ elevation +"m";
document.getElementById("list").innerHTML = html;
}
function addMarker(point, icon){
map.clearOverlays();
marker = new GMarker(point,icon);
map.addOverlay(marker);
}
//]]>
2007/12/8: α版を公開しました。
Copyright (c) Hitoshi Taguchi 2000-2008 All Rights Reserved.