説明
指定した地点の高度(海抜)を求めるにはgoogle.maps.ElevationService()を使います。作成されたオブジェクトのgetElevationForLocations()メソッドにより指定した地点の高度を求めることができます。getElevationForLocations()の最初のオプションパラメータlocationに配列形式で求めたい場所の緯度経度を指定します。getElevationForLocations()の2番目のパラメータには関数を指定します。この関数は高度の取得に成功または失敗した場合に呼び出されます。
関数には2つのパラメータが渡されます。最初のパラメータが高度情報などを格納したオブジェクト、2番目のパラメータがステータスになります。このステータスがOKであれば高度が取得できた事になります。このステータスには以下のものがあります。
google.maps.ElevationStatus.OK | OK。高度の取得に成功した |
google.maps.ElevationStatus.INVALID_REQUEST | リクエストが無効 |
google.maps.ElevationStatus.OVER_QUERY_LIMIT | リクエストの制限回数を超えた |
google.maps.ElevationStatus.REQUEST_DENIED | 高度を取得するサービスは使えなかった |
google.maps.ElevationStatus.UNKNOWN_ERROR | 原因不明のエラー |
高度はresults[0].elevationプロパティを参照すれば取得できます。プロパティに格納されているのは数値であり単位はメートルになります。
Google Maps API プログラミング入門。Google Maps API Expertである勝又雅史氏が最新のAPI ver3やGoogle Maps for Flashなどについて解説しています。
【
アマゾンで購入する】
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Google Maps API ver 3 Sample/グーグルマップAPIサンプル/Google Maps API样品</title>
<link rel="stylesheet" href="css/main.css" type="text/css" media="all">
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
</head>
<body>
<div id="gmap"></div>
<script type="text/javascript">
var shiojiriStation = new google.maps.LatLng(36.11453636986865, 137.94893994927406);
var map = new google.maps.Map(
document.getElementById("gmap"),{
zoom : 16,
center : shiojiriStation,
mapTypeId : google.maps.MapTypeId.TERRAIN
}
);
// 高度を求める
var elevator = new google.maps.ElevationService();
elevator.getElevationForLocations({
"locations": [ shiojiriStation ]
}, function(results, status){
if (status == google.maps.ElevationStatus.OK){
alert(results[0].elevation);
}else{
alert("高度の取得に失敗しました");
}
});
</script>
</body>
</html>