Google Maps API V3で、google.maps.ElevationServiceクラスを使ってみるサンプルプログラム。ある特定の地点の緯度経度から標高を取得します。
- プログラムに興味はなく、地図上で調べたいだけの場合は緯度・経度・住所・標高を取得するを。
地図上をクリックすると、その地点の標高を表示します。
function getElevation(latlng) { // 要素が1つでも配列に…。 var locations = [latlng]; // ElevationServiceのコンストラクタ var elevation = new google.maps.ElevationService(); // リクエストを発行 elevation.getElevationForLocations({ locations: locations }, function(results, status) { if (status == google.maps.ElevationStatus.OK) { if (results[0].elevation) { // 標高ゲット! var elevation = results[0].elevation; // あとはご自由に・・・。 new google.maps.InfoWindow({ content: "標高 " + elevation + "m<br>(Lat, Lng) = " + latlng }).open(map, new google.maps.Marker({ position: latlng, map: map })); } } else if (status == google.maps.ElevationStatus.INVALID_REQUEST) { alert("リクエストに問題アリ!requestで渡している内容を確認せよ!!"); } else if (status == google.maps.ElevationStatus.OVER_QUERY_LIMIT) { alert("短時間にクエリを送りすぎ!落ち着いて!!"); } else if (status == google.maps.ElevationStatus.REQUEST_DENIED) { alert("このページでは ElevationResult の利用が許可されていない!・・・なぜ!?"); } else if (status == google.maps.ElevationStatus.UNKNOWN_ERROR) { alert("原因不明のなんらかのトラブルが発生した模様。"); } else { alert("えぇ~っと・・、バージョンアップ?"); } }); }
ある地点の標高を得るには、ElevationServiceクラスの getElevationForLocations() を使います。第1引数 LocationElevationRequest の location プロパティに緯度経度を配列で与えると、第2引数のコールバック関数に検索結果が引数として渡されます。