我可以从网站上阅读“真正的”移动GPS坐标吗?

时间:2012-04-16 18:12:20

标签: javascript geolocation web w3c

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

2 个答案:

答案 0 :(得分:7)

使用HTML5,您可以做到这一点。您需要检查地理位置API:Dive Into HTML5W3C 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所说here,带有GPS的设备可能需要一分钟或更长时间才能获得GPS修复,因此不太准确的数据(IP位置或wifi)可能会返回到getCurrentPosition()启动。

因此,如果您需要具有高精度(仅限GPS),请使用watchPosition代替getCurrentPosition

答案 1 :(得分:0)

如W3C规范中所述,您可能需要使用watchPosition和getCurrentPosition的第三个参数,这是一个PositionOptions interface来将enableHighAccuracy设置为true,否则,使用其默认值false,GPS赢了'必须由设备打开。