我正在开发基于地图的网络应用程序,我想为用户提供“使用当前位置”的能力
我可以轻松检查geolocation api的可用性,如下所示:
if (navigator && navigator.geolocation) {}
一旦我实际呼叫navigator.geoLocation.getCurrentPosition
,我就可以轻松检查结果的准确性,或者结果是否可用。
但是,我想只显示“使用当前位置”按钮,当它有可能很好地工作时,即产生精确到几百米的结果。我想在不要求用户分享他们的位置的情况下做出这个决定。
到目前为止,我最好的猜测是基本上尝试始终在台式机或笔记本电脑上隐藏此按钮,可能是通过使用Modernizr触摸屏检测。由于触摸屏笔记本电脑,这显然不会100%有效,但也许它总比没有好。
我还想避免在服务器端做太精细的事情。到目前为止,这是我的应用程序中唯一需要检测任何类型设备的功能,因此WURFL或类似的用户代理查找是不可能的。我想在没有太多膨胀的情况下做所有客户端
感谢您的帮助
答案 0 :(得分:1)
不幸的是,没有。获取用户的地理定位准确性是私有信息,因此您需要首先向最终用户发出请求(如navigator.geolocation.getCurrentPosition
中所述)。 gps的准确性是设备特定信息,因此您可以获得它的唯一方式是在客户端而不是在您的服务器上。
对不起,没有更好的解决方案。如果您正在制作移动应用,您可以随时使用phonegap / cordova并使用或创建一个可以获取此信息的插件。