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引数のコールバック関数に検索結果が引数として渡されます。