1

現在、位置情報検索にRuby GeocoderSunspotを使用しています。IP アドレスには特定の座標があるため、デスクトップ ブラウザーで機能します。ただし、モバイル ブラウザの場合、デバイスが Wi-Fi に接続されていないと機能しません。モバイル デバイスの緯度と経度の座標を取得する最良の方法は何ですか? デスクトップとモバイルの両方に 1 つのソリューションを用意したいと考えています。ありがとうございました!

4

1 に答える 1

4

HTML 5 Geolocation を使用できます。古いブラウザーでは機能しませんが、Geolocation をサポートしていないブラウザーでは、バックアップとして IP Geolocation を引き続き使用できます。

 if (navigator.geolocation) {
   var timeoutVal = 10 * 1000 * 1000;
   navigator.geolocation.getCurrentPosition(
     displayPosition, 
     displayError,
     { enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
   );
 } else {
   alert("Geolocation is not supported by this browser");
 }

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

 function displayError(error) {
   var errors = { 
     1: 'Permission denied',
     2: 'Position unavailable',
     3: 'Request timeout'
   };
   alert("Error: " + errors[error.code]);
 }

何をしているのかわかりませんが、js を使用して、ユーザーの場所と緯度を非表示の変数に保存しようとすることができます。送信時に、緯度と経度を受け取った場合はそれを保存し、それ以外の場合はリモート IP を確認し、 IPによるジオローカリゼーションを行います(したがって、IPによるジオローカリゼーションは単なるバックアップです)。

于 2012-12-12T06:09:40.003 に答える