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