6

多くの人がこの質問をしたことは知っていますが、適切な答えが見つからなかったと思います。私の質問は、Firefox のデスクトップで HTML 5 Geolocation API を実行し、場所の共有をクリックすると、IP アドレスが取得されますが、使用する必要があるワイヤレス ポイントをどのように認識して距離を見つけるのでしょうか? 私は自宅でアプリを実行し、精度 50 m を取得しましたが、同じインターネットプロバイダーを使用している隣人の隣に行き、彼のデスクトップで精度 18 km を返しましたか? 誰かが私にこれを説明したり、この情報を読む場所を教えてくれたりすると、とても役に立ちますか?

ありがとうございました

4

3 に答える 3

0

geolocation APIを使用すると、信頼できるWebサイトと現在地を共有できます。緯度と経度は、ページ上のJavaScriptで利用できます。JavaScriptは、JavaScriptをリモートのウェブサーバーに送り返し、地元のお店やサービスを見つけたり、地図上に現在地を表示したりするなど、場所を認識することができます。

getCurrentPosition()の呼び出し中に何が起こりますか?この章の冒頭で述べたように、ジオロケーションのサポートはオプトインです。つまり、ブラウザが現在の物理的な場所をリモートサーバーに表示するように強制することはありません。ユーザーエクスペリエンスはブラウザごとに異なります。Mozilla Firefoxでは、geolocation APIのgetCurrentPosition()関数を呼び出すと、ブラウザがブラウザウィンドウの上部に「情報バー」をポップアップ表示します。

getCurrentPosition()の呼び出しはすぐに返されますが、それはユーザーの場所にアクセスできることを意味するわけではありません。コールバック関数は、coordsとtimestampの2つのプロパティを持つオブジェクトである単一のパラメーターで呼び出されます。タイムスタンプは、場所が計算された日時です。(これはすべて非同期で行われるため、事前にいつ発生するかを実際に知ることはできません。ユーザーが情報バーを読んで現在地を共有することに同意するまでに時間がかかる場合があります。専用のGPSハードウェアを備えたデバイスにはさらに時間がかかる場合があります。 GPS衛星に接続するためなど。)coordsオブジェクトには、緯度や経度などのプロパティがあり、それらはまさにそのように聞こえます。つまり、世界におけるユーザーの物理的な位置です。

あなたは私が上記の情報をとったところからこのリンクを参照することができます:http: //diveintohtml5.ep.io/geolocation.html

于 2011-06-02T09:15:21.187 に答える
0

W3C Geolocation API は既存のテクノロジに基づいて構築されており、Google Gears Geolocation API の影響を強く受けています。実際、Firefox のジオロケーションの実装では、Google のネットワーク ロケーション プロバイダーを使用しています。

Google Gears Geolocation は、ユーザーの物理的な場所に関するヒントを与える一連のパラメーターをネットワーク ロケーション プロバイダー サーバーに送信することによって機能します。ネットワーク ロケーション プロバイダー サーバーは、デフォルトで Google が提供するサーバー (code.l.google.com) です。 . パラメーターの一部は、モバイル セル タワーとその信号強度のリスト、および検出された Wi-Fi ネットワークとその信号強度のリストです。これらのパラメーターは JSON メッセージにカプセル化され、HTTP POST 経由でネットワーク ロケーション プロバイダーに送信されます。これらのパラメーターに基づいて、ネットワーク ロケーション プロバイダーはロケーションを推測できます。

「ウェブサイトがこのサービスを介してあなたの位置を取得することを許可すると、私たち (Google) は、デバイスの機能に応じて、最も近い Wi-Fi ルーターに関する情報、最も近いセル タワーのセル ID、およびWi-Fi またはセル信号の強度. この情報を使用して推定位置を Firefox ブラウザに返し、Firefox ブラウザは推定位置を要求元の Web サイトに送信します. 当社の (google) サービスに送信された各要求について, 私たち (google) もクライアントの IP アドレス、ユーザー エージェント情報、一意の識別子を収集します。この情報は、お客様を特定するためではなく、リクエストを区別するために使用します。」

ソース: http://www.google.com/intl/en/privacy/lsf.htmlおよびhttp://en.wikipedia.org/wiki/W3C_Geolocation_API

于 2011-06-27T22:36:16.750 に答える
0

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

ここ ( http://html5demos.com/geo )に HTML5 Geolocation の非常に優れたデモがあります。ウェブサイトが次に挙げる 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:59:35.010 に答える