TECH I.S.

HTML ジオロケーションAPI


HTML Geolocation APIは、ユーザーの位置を特定するために使用されます。


ユーザーの位置を特定する

HTML Geolocation APIは、ユーザーの地理的な位置を取得するために使用されます。

これによりプライバシーが侵害される可能性があるため、ユーザーが承認しない限り、その位置は使用できません。

注:位置情報は、スマートフォンなどのGPSを備えたデバイスで最も正確です。

ブラウザのサポート

表の数字は、Geolocationを完全にサポートする最初のブラウザバージョンを示しています。

API
位置情報 5.0 - 49.0 (http)
50.0 (https)
9.0 3.5 5.0 16.0

注:Chrome 50以降、Geolocation APIはHTTPSなどの安全なコンテキストでのみ機能します。サイトが安全でないオリジン(HTTPなど)でホストされている場合、ユーザーの場所を取得するリクエストは機能しなくなります。


HTML ジオロケーションの使用

getCurrentPosition()メソッドを使用して、ユーザーの位置を返します。

以下の例は、ユーザーの位置の緯度と経度を返します。

<script> var x = document.getElementById("demo"); function getLocation() {   if (navigator.geolocation) {     navigator.geolocation.getCurrentPosition(showPosition);   } else {     x.innerHTML = "このブラウザでは地理位置情報がサポートされていません。"; } } function showPosition(position) {   x.innerHTML = "Latitude: " + position.coords.latitude +   "<br>Longitude: " + position.coords.longitude; } </script>

例の説明:

  • Geolocationがサポートされているかどうかを確認する。
  • サポートされている場合は、getCurrentPosition()メソッドを実行します。そうでない場合は、ユーザーにメッセージを表示します。
  • getCurrentPosition()メソッドが成功すると、パラメーター(showPosition)で指定された関数に座標オブジェクトを返します。
  • showPosition() 関数は緯度と経度を出力します。

上記の例は非常に基本的な位置情報スクリプトで、エラー処理はありません。


エラーと拒否の処理

getCurrentPosition()メソッドの2番目のパラメーターは、エラーを処理するために使用されます。ユーザーの位置情報の取得に失敗した場合に実行する関数を指定します。

function showError(error) {   switch(error.code) {     case error.PERMISSION_DENIED:       x.innerHTML = "ユーザーは地理位置情報のリクエストを拒否しました。"       break;     case error.POSITION_UNAVAILABLE:       x.innerHTML = "位置情報は取得できません。"       break;     case error.TIMEOUT:       x.innerHTML = "ユーザーの位置情報を取得するリクエストがタイムアウトしました。"       break;     case error.UNKNOWN_ERROR:        x.innerHTML = "不明なエラーが発生しました。"        break;   } }


場所固有の情報

このページでは、ユーザーの位置を地図上に表示する方法を示しました。

地理位置情報は、次のような場所固有の情報にも非常に役立ちます。

  • 現地の最新情報
  • ユーザーの近くに関心のあるポイントを表示する
  • ターンバイターン方式のナビゲーション(GPS)

getCurrentPosition()メソッド - 戻りデータ

getCurrentPosition()メソッドは、成功するとオブジェクトを返します。緯度、経度、精度のプロパティは常に返されます。他のプロパティが利用可能な場合は返されます。
プロパティ 戻り値
coords.latitude 10進数としての緯度(常に返されます)
coords.longitude 10進数としての経度(常に返されます)
coords.accuracy 位置の精度(常に返されます)
coords.altitude 平均海面からのメートル単位の高度(利用可能な場合は返されます)
coords.altitudeAccuracy 位置の高度精度(利用可能な場合に返されます)
coords.heading 北から時計回りの方位(利用可能な場合は返される)
coords.speed 速度(メートル/秒)(可能な場合は返されます)
timestamp 応答の日時(可能な場合に返されます)

Geolocationオブジェクト - その他の興味深いメソッド

Geolocationオブジェクトには他にも興味深いメソッドがあります。

  • watchPosition()- ユーザーの現在位置を返し、ユーザーが移動すると更新された位置を返し続けます(車のGPSのように)。
  • clearWatch()- watchPosition()メソッドを停止します。

以下の例は、watchPosition()メソッドを示しています。これをテストするには、正確なGPSデバイス(スマートフォンなど)が必要です。

<script> var x = document.getElementById("demo"); function getLocation() {   if (navigator.geolocation) {     navigator.geolocation.watchPosition(showPosition);   } else {     x.innerHTML = "このブラウザでは地理位置情報がサポートされていません。"; } } function showPosition(position) {   x.innerHTML = "Latitude: " + position.coords.latitude +   "<br>Longitude: " + position.coords.longitude; } </script>



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細