关于HTML5-geolocation

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于HTML5-geolocation相关的知识,希望对你有一定的参考价值。

最开始,想在自己的简历中实现这样一个地图效果:自动获取HR的当前位置,与我所在位置做距离差。如在相应范围之内就弹出相应对话框巴拉巴拉。初步代码写好后在浏览器里测试(mac版chrome),发现浏览器在请求http://www.googleapis.com获得经纬度。看到这个域名心就凉了一半,由于众所周知的原因,也就是说不那啥geolocation就根本获取不了地理信息。翻了一些文档,请教了一些高手,发现这个问题在桌面浏览器中可能是无解的。

 

html5文档中,关于geolocation的位置信息,记录来源包括GPS、IP地址、RFID、WIFI和蓝牙的MAC地址、以及GSM/CDMS 的ID等等。但规范中没有规定使用这些设备的先后顺序,在具体的实现中,手机等移动设备会优先使用GPS定位,而笔记本和不带GPS的平板,最准的定位是WIFI,至于网线上网的台式机,一般就只能使用IP来定位了,准确度实在堪忧。

在这些方法里,GPS定位最好理解,卫星直接给出定位数据。而WIFI和IP地址定位,都不是浏览器本身能够实现的。这两种方式都必须将IP地址或WIFI信号收集到的周围路由信息,上传到某个服务器,由服务器的查询计算位置信息,然后返回给浏览器。然而火狐、chrome、Opera等着主流浏览器都是用谷歌提供的API来查询,被墙的可能非常大。

 

最终可能的解决方案就是:PC上不要用这个API。一来查询API被墙,二来,就算没被墙,最多也只能做到通过IP地址找到你的城市。

 

技术上可能确实无解,但也有一些从交互的角度解决问题的思路:比如故意定位错误,给用户手动变更当前坐标的提示(通过搜索或者拖拽开始指针)。

 

之前在知乎的提问:https://www.zhihu.com/question/39362267

以上是关于关于HTML5-geolocation的主要内容,如果未能解决你的问题,请参考以下文章

关于代码片段的时间复杂度

关于片段生命周期

关于js----------------分享前端开发常用代码片段

关于在各浏览器中插入音频文件的html代码片段

springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段

几个关于js数组方法reduce的经典片段