2

わかりましたので、私は自分のウェブサイトに Google Maps API を使用しており、'Set Current Location' 機能を利用しています。

一部のユーザーにとっては正常に機能しますが、他のユーザーにとっては、「間違った」場所にデフォルト設定されています。

例 1 リバプールの学生寮にいるときに、友人にサイトをテストしてもらいました。彼が現在の場所を許可すると、彼の場所がスタッフォードの家族の家として設定されます。

例 2 大学のコンピューターで Web サイトをテストし、現在地機能を許可しました。今回は、コンピューターの場所ではなく、大学のサーバーが配置されている建物に場所を設定しました (リバプールの反対側です!)。

私は IP 地理位置情報について十分に知らないので、解決策を考えることができず、同様のスタックオーバーフローの質問を見つけることもできません。より正確な方法で場所を設定する方法はありますか? おそらく、郵便番号を使用して場所を設定できますか?

どんな助けでも大歓迎です。

トリスタン

編集:これは、初期化関数内で場所を設定するためのコードです

if(navigator.geolocation) {

         navigator.geolocation.getCurrentPosition(currentPositionCallback);

        } else {

        alert('The browser does not support geolocation');

        }

    function currentPositionCallback(position) {

         // Create a new latlng based on the latitude and longitude from the users position
         var user_lat_long = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

         // Add a marker using the user_lat_long position
         var userpos = new google.maps.Marker({
         position: user_lat_long,
          icon: new google.maps.MarkerImage("img/icons/icon_home.png", new google.maps.Size(32, 34)),
         map: map
         });

         // Set the center of the map to the users position and zomm into a more detailed level
         map.setCenter(user_lat_long);
         map.setZoom(15);

    }
4

1 に答える 1

2

問題は、地理位置情報が少し暗い芸術であることです。API は、さまざまな手法を使用して、その場所を特定します。

  • 最も信頼できるのは、マシンに GPS が搭載されている場合です。これにより、最も近い 10 メートル程度まで絞り込むことができます。
  • 次に、携帯電話は、エリア内にあるセル マストと信号強度を報告することで、何らかの作業を行うことができます。これを使用して、100 メートル程度の範囲で三角測量を行うことができます。
  • もう 1 つの方法は、IP アドレスを確認することです。これらは地理的な場所にマッピングできますが、非常に不正確になる傾向があります。この手法は、マシンに地理位置情報の他の方法がない場合にのみ使用されます。これは、大学のコンピューターによるクロスタウン効果を説明するかもしれません。
  • 最後の方法 (これはあなたの友人に役立つと思います) は、その地域の WiFi ネットワークを調べることです。数年前、人々の Wi-Fi からデータを盗み出したことで、Google がトラブルに巻き込まれたことを覚えていますか? 彼らが最初に WiFi を調べた理由は、WiFi ルーターのマップを取得するためでした。彼らは、国内のすべての WiFi ルーターの名前と場所を知っています (ほぼすべて)。ブラウザは、それが見ることができる信号のリストを提供し、Google はあなたがどこにいるかをかなり正確に割り出すことができます.

標準のラップトップを使用している場合、使用できる唯一の方法はこの最後の方法である可能性があります。Google のデータベースが最新であれば、これはうまく機能します。

残念ながら、不正確な場合があります。人々は常に、新しいルーターのセットアップ、アップグレード、WiFi の詳細の変更、引っ越し、ルーターの持ち込み、さらにはオンとオフの切り替えを行っています。

PC の周囲で検出された信号が、Google があなたの場所にあると考えている信号と一致しない場合は、奇妙な結果が予想されます。私の推測では、あなたの友人はルーターを自宅から学生の自宅まで持っていったのではないでしょうか? Google はおそらくそのルーターがスタッフォードのものであると認識し、その地域にある他のルーターを認識していないため (最後にスキャンを行ってからすべての生徒が変更されているため)、それはスタッフォードにあるに違いないと推測します。

この手法は、機能する場合は驚くほど正確ですが、機能しない場合、結果はコミカルに不正確になる可能性があります。ラップトップに GPS ビーコンをインストールするか、近隣のすべての人にルーターを決して変更しないように説得する以外に、どちらにしてもできることはあまりありません。

于 2012-10-22T20:37:01.130 に答える