我正在编写一个现场服务 HTML5 应用程序,该应用程序在装有 GPS 芯片的 Windows 笔记本电脑上的 Google Chrome Web 浏览器上运行。我正在使用 html5 geolocation api 来获取用户的位置。只要用户有 IP 地址(无论是来自 WiFi 还是有线网络连接),这种方法就可以正常工作。
但是,当笔记本电脑没有网络连接时,即使笔记本电脑有 GPS 芯片,地理定位也会失败。我担心浏览器不够智能,无法使用GPS芯片,而是总是想调用Google的网络地理定位服务,如果没有网络,该服务就会失败。有谁知道是这样吗?
有没有办法让 Google Chrome 地理定位在有 GPS 芯片但没有网络连接的笔记本电脑上工作?看起来很愚蠢,它不起作用!
虽然不理想,但您可以使用第 3 方桌面应用程序将位置数据写入磁盘上的文件。如果文件写入 Web 文件夹,则可以使用 javascript 读取该文件。 Windows GPS 登录软件:http://gpsgate.com/support/nmea_logger
您是否尝试过将enableHighAccuracy属性设置为true?
navigator.geolocation.getCurrentPosition(
processGeolocation,
// Optional settings below
geolocationError,
{
timeout: 0,
enableHighAccuracy: true,
maximumAge: Infinity
}
);
我找到的解决方案是
编写一个小型 dotnet 控制台应用程序,从 Windows 位置 api 返回位置。 Windows 位置 api 尊重已安装 GPS 的准确性并在可用时返回它。
然后我编写了一个 chrome 扩展,并有权运行这个 dotnet 应用程序并返回结果。
我的网络应用程序可以检查扩展程序是否已安装并触发位置请求。
我不确定这是否是比 gpsgate 本地服务器更好的方法,无论如何,这是无需任何第三方应用程序即可解决问题的好方法。
它在数十种 Windows 松下 Toughbooks 平板电脑上运行良好。