1

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

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 回答