HTML5 地理位置情報は、ユーザーの位置を特定するために使用されます。
HTML5 Geolocation API は、ユーザーの地理的位置を取得するために使用されます。
この機能はユーザーのプライバシーを侵害する可能性があるため、ユーザーの同意がない限りユーザーの位置情報は利用できません。
地理位置情報は、Internet Explorer 9、Firefox、Chrome、Safari、Opera でサポートされています。
注: 地理位置情報は、iPhone などの GPS を備えたデバイスの方が正確です。
ユーザーの位置を取得するには、getCurrentPosition() メソッドを使用してください。
以下の例は、ユーザーの位置の経度と緯度を返す単純な地理位置情報の例です。
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"<br />Longitude: " + position.coords.longitude;
}
</script>
説明例:
上記の例は、エラー処理のない非常に基本的な地理位置情報スクリプトです。
getCurrentPosition() メソッドの 2 番目のパラメータは、エラーを処理するために使用されます。 ユーザーの位置情報の取得が失敗したときに実行する関数を指定します。
function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
x.innerHTML="User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML="Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML="The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML="An unknown error occurred."
break;
}
}
エラー コード:
結果を地図上に表示するには、Google マップや Baidu マップなど、緯度と経度を使用できる地図サービスにアクセスする必要があります。
function showPosition(position)
{
var latlon=position.coords.latitude+","+position.coords.longitude;
var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=400x300&sensor=false";
document.getElementById("mapholder").innerHTML="<img src='"+img_url+"' />";
}
上記の例では、返された緯度と経度のデータを使用して、Google マップに位置を表示します (静止画像を使用)。
上記のリンクは、スクリプトを使用して、マーカー、ズーム、ドラッグのオプションを備えたインタラクティブなマップを表示する方法を示しています。
このページでは、ユーザーの位置を地図上に表示する方法を説明します。 ただし、地理位置情報は、特定の場所の情報を得るのにも役立ちます。
ケース:
getCurrentPosition() メソッドは、成功するとオブジェクトを返します。 緯度、経度、精度のプロパティは常に返されます。 利用可能な場合は、以下の他のプロパティが返されます。
| 属性 | 説明 |
|---|---|
| coords.latitude | 緯度 (10 進数) |
| coords.longitude | 経度 (10 進数) |
| coords.accuracy | 位置精度 |
| coords.altitude | 海抜メートル単位の標高 |
| coords.altitudeAccuracy | 位置の高度精度 |
| coords.heading | 真北からの方向(度単位) |
| coords.speed | 秒あたりのメートル単位の速度 |
| timestamp | 応答の日付/時刻 |
watchPosition() - ユーザーの現在位置を返し、ユーザーが移動すると更新された位置を返し続けます (車の GPS のように)。
clearWatch() - watchPosition() メソッドを停止します
次の例は、watchPosition() メソッドを示しています。 この例をテストするには、正確な GPS デバイス (iPhone など) が必要です。
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.watchPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"<br />Longitude: " + position.coords.longitude;
}
</script>