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

Posted

技术标签:

【中文标题】我可以从网站上读取“真实”的移动 GPS 坐标吗?【英文标题】:Can I read the 'real' mobile GPS coordinates from a website? 【发布时间】:2012-04-16 18:12:19 【问题描述】:

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

【问题讨论】:

【参考方案1】:

使用 html5,您可以做到这一点。您需要检查 Geolocation API:Dive Into HTML5 和 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;
           
        
    );

您可能还对某些特定于浏览器的实现感兴趣:Mozilla、IE、Chrome

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

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

【讨论】:

感谢 gakhov,但是使用这种方法,手机没有使用真正的 GPS(不在状态栏上闪烁):O 这很奇怪。手机启用了 GPS...手机在 3" 中找不到任何东西并询问分享我的位置...如果我承认知道位置,手机只需通过 GSM 设置位置,手机仍然通过 GPS 信号搜索。我需要手机不使用 GSM 三角测量 :( 这可能吗?提前谢谢! 我发现了问题:) 只需在函数(位置)上使用 if(position.coords.accuracy 【参考方案2】:

如 W3C 规范中所述,您可能需要使用 watchPosition 和 getCurrentPosition 的第三个参数,即 PositionOptions interface 将 enableHighAccuracy 设置为 true,否则,使用其默认值 false,GPS 不一定由设备开启。

【讨论】:

以上是关于我可以从网站上读取“真实”的移动 GPS 坐标吗?的主要内容,如果未能解决你的问题,请参考以下文章

登录网站时如何从黑莓获取 GPS 坐标

从 MySQL 数据库更新谷歌地图上“实时”标记的变化坐标

如何使用 GPS 坐标在 Vector3 中移动玩家? [统一]

从移动网站访问移动设备上的 GPS 和相机设备

如何使用 HTML5 获得经过验证的位置?

telnet 可以用来在通过 USB 连接的真实 android 设备上设置 gps 位置吗?