目前我正在使用Ruby Geocoder和Sunspot进行地理定位搜索。它适用于桌面浏览器,因为 IP 地址具有特定的坐标。但是对于移动浏览器,除非设备连接到 wifi,否则它不起作用,获取移动设备的纬度和经度坐标的最佳方法是什么?我希望有一个适用于台式机和移动设备的解决方案。谢谢!
问问题
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 回答