6

我做了一个网站,我想在移动设备(Android 和 iPhone)上阅读“真实”位置 GPS。当我尝试使用W3C javascript 方法从我的 Android 上设置我的网站上的位置时,GPS 未启用并且位置由 IP 设置(当我尝试使用 Google 地图应用程序时,GPS 已启用并在状态栏上闪烁)。有什么方法可以从手机上的网络读取 GPS(真正的 GPS)?提前致谢!

4

2 回答 2

7

使用 HTML5,您可以做到这一点。您需要查看 Geolocation API: Dive Into HTML5 and W3C Geolocation API Specification

最简单的示例如下所示:

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition( 
        function (position) {  
            do_something(position.coords.latitude,position.coords.longitude);
        }, 
        function (error){
            switch(error.code){
                case error.TIMEOUT:
                    // Timeout
                    break;
                case error.POSITION_UNAVAILABLE:
                    // Position unavailable
                    break;
                case error.PERMISSION_DENIED:
                    // Permission denied
                    break;
                case error.UNKNOWN_ERROR:
                    // Unknown error
                    break;
                default: break;
           }
        }
    );
}

可能您对某些特定于浏览器的实现也很感兴趣:MozillaIEChrome

更新。 正如 Mozilla在此处所说,例如,具有 GPS 的设备可能需要一分钟或更长时间才能获得 GPS 定位,因此可能会将不太准确的数据(IP 位置或 wifi)返回到 getCurrentPosition() 以启动。

因此,如果您需要高精度(例如仅 GPS),请使用watchPosition而不是getCurrentPosition.

于 2012-04-16T18:19:38.047 回答
0

如 W3C 规范中所述,您可能需要使用 watchPosition 和 getCurrentPosition 的第三个参数,这是一个PositionOptions 接口将 enableHighAccuracy 设置为 true,否则,使用其默认值 false,GPS 不一定会被打开装置。

于 2013-11-17T00:00:17.407 回答