28

Googleマップは、Firefoxを使用して、通りの精度で現在地を正確に特定できるようになりました。

これはHTML5互換ブラウザの新機能であり、接続されたWiFiネットワークのある種の機能を使用して場所が取得されることを理解しています(ばかげた仮定をしていないことを願っています)。

私が知りたいのは、このプロセス全体が正確にどのように機能するかです。

  • なぜHTML5だけなのか?
  • Firefoxが現在地をGoogleマップと共有するように要求するのはなぜですか?
  • 信頼できる通常の精度はどれくらいですか?
  • この機能を自分のWebサイトに実装するにはどうすればよいですか?

前もって感謝します!

4

3 に答える 3

35

それはどのように機能しますか?

Firefox で位置認識 Web サイトにアクセスすると、ブラウザーは位置情報を共有するかどうかを尋ねてきます。

同意すると、Firefox は近くのワイヤレス アクセス ポイントとコンピュータの IP アドレスに関する情報を収集し、この情報をGoogle 位置情報サービス(Firefox のデフォルトの地理位置情報サービス)に送信して、現在地の推定値を取得します。その場所の推定値は、要求元の Web サイトと共有されます。(ソース

位置情報はどの程度正確ですか?

精度は場所によって大きく異なります。場所によっては、地理位置情報サービス プロバイダーが数メートル以内の場所を提供できる場合があります。ただし、他の地域では、それをはるかに超える可能性があります。提供された場所の正確性を保証するものではないため、すべての場所は推定値と見なされます。(ソース

私の場合、Firefox は、実際の場所から約 10 km 離れていると報告します。

Web サイトでこの機能を使用するにはどうすればよいですか?

次のようにします。

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) {  

        alert(position.coords.latitude + ", " + position.coords.longitude);

        // Use the latitude and location as you wish. You may set a marker
        // on Google Maps, for example.
    }); 
} 
else {
    alert("Geolocation services are not supported by your browser.");
}  

ここでオンライン デモを見ることができます: Firefox HTML 5 Geolocation Demo (Firefox 3.1b3 などの地理位置情報を認識するブラウザーが必要です。)

于 2010-02-11T23:07:15.670 に答える
14

HTML5は API を提供します

これにより、Web ブラウザー (したがって、Web アプリケーションのサーバー側) は、場所と速度 (関連する場合) などの関連情報を、標準的で統一された方法で照会できます。

ホストとその Web ブラウザは、ジオロケーション自体を計算/推定する「デバイス」を提供します。

この API が有用であるためには、基盤となるホストと Web ブラウザー
  が a) そのような情報の共有を許可し (プライバシーの問題に注意)、
  b) ある程度装備されている (ローカルまたはそれらが接続されているネットワークを介して) 必要があります。 ) を使用して地理位置情報を読み取ったり推定したりします。

実際の位置の計算に関連する技術とデバイスには、次の組み合わせが含まれ (もちろんすべてが適用されるわけではありません)、HTML 5 標準とは無関係です。

  • GPS デバイス (多くの携帯電話に搭載されています)
  • 携帯電話ネットワークレベルでのルーティング情報
  • IPアドレス/ISPルーティング情報
  • Wi-Fi ルーター情報
  • 固定データ、手動入力 (固定位置にある PC の場合)
  • ...

したがって...
- HTML5だけでは地理位置情報を把握できません。新しい Web ブラウザにアップグレードするだけでは、アプリケーションなどで地理位置情報機能を取得するには不十分です。
- 地理位置情報データは HTML5 API の外部で共有できるため、GPS が可能-ready または GeoLocation 対応の電話は、他の API 内で地理位置情報データを公開します。

于 2010-02-11T23:04:16.797 に答える
0

HTML5 Geolocation APIは、全地球測位システム (GPS)、デバイスのインターネット プロトコル (IP) アドレス、最寄りの携帯電話基地局、ユーザーからの入力などの特定の機能をユーザーのデバイスで使用して、ユーザーの位置を取得します。Geolocation API を使用して取得されたユーザーの場所は、場所の取得に使用されたソースの種類によっては、ほぼ正確です。

ここ ( http://html5demos.com/geo )に HTML5 Geolocation の非常に優れたデモがあります。Web サイトが次の API のいずれかを使用して位置情報を取得しようとすると、ブラウザは API を呼び出して位置情報を共有する前に許可を求めます。

Geolocation API は、次のメソッドを提供します。

  • getCurrentPosition(successCallback, errorCallback, オプション)

    ユーザーの現在の地理的な場所を取得するために使用されます。

  • watchPosition(successCallback, errorCallback, オプション)

    この関数は watchId を返し、更新された座標で successCallback を呼び出します。ユーザーが移動すると、更新された位置を返し続けます (車の GPS のように)。

  • clearWatch(ウォッチ ID)

    提供された watchId に基づいて watchPosition() メソッドを停止します。

サンプルコード:

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(userPositionSuccess, userPositionError);
} else {
  alert("Your browser does not support geolocation.");
}

function userPositionSuccess(position) {
  alert("Latitude: " + position.coords.latitude + " Longitude: " + position.coords.longitude);
}

function userPositionError() {
  alert("There was an error retrieving your location!");
}
于 2013-12-22T23:58:05.160 に答える