在PC端实现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

你可能感兴趣的:(在PC端实现HTML5-geolocation的一些细节)