我目前正在寻找一种使用火狐操作系统的设备与设备的gps进行通信的方法,这样它就可以获得准确的位置定位,而不是w3c geolocation api,后者不如gps实时准确。谢谢!
发布于 2013-03-21 06:10:14
答案很简单:不可能直接访问“设备的GPS”。你只有你已经知道的Geolocation API。
长篇大论:我的经验一点也不差。所以,我认为只有两种可能无法获得“准确的位置定位”,正如你所说的:
在第一种情况下,您可以验证是否正在使用enableHighAccuracy,如下所示:
navigator.geolocation.watchPosition(
successCallback,
errorCallback,
{ enableHighAccuracy: true }
);这将要求浏览器获得更好的结果,如standard所示。请注意,这可能会使用更多的电池,这可能是无论如何都不可用的。这可能也需要更多的时间,这与我的其他观察结果有关。
在第二种情况下,您可能使用的timeout值太小,也可能与maximumAge组合使用的值太高。
如果maximumAge很高,而timeout很小,你会得到一个过时的职位,因为没有足够的时间获得新职位,你会接受一个旧职位。
如果两者都很小,你会开始得到很多TIMEOUT错误(值为3),因为没有你的位置。
你需要在所有3个选项之间找到合适的平衡,以获得最佳职位。有时候你必须要有耐心。
尝试所有3个选项,看看你得到的错误。他们会告诉你很多关于获取精确坐标的问题。
position对象有一些属性,可以用来分析正在发生的事情:
position.timestamp属性将告诉您该位置对象的年龄。如果这是旧的,您知道应该调整选项position.coords.accuracy属性将告诉您经度/经度坐标的精度级别。如果这个值太大(以米为单位),您知道应该调整选项如果你一直等待,在一个GPS应该能正常工作的地方(比如在户外,干净的场地上),你总是得到不准确的结果,也许你也不能做得更好。我想说这无论如何都是不可能的,因为你的software+hardware =(
发布于 2013-03-20 21:11:07
您可以使用Geolocation API Firefox OS或Google Maps (我不记得是从哪里得到的)
https://stackoverflow.com/questions/15491636
复制相似问题