Lia*_*iam 23 javascript html5 google-maps
我有点困惑为什么我会选择使用限制访问的Google Maps Geolocation API而不是HTML5 的免费和(显然)无限navigator.geolocation
功能?
据我所知,谷歌版本的唯一优势是它增加了对IE8等浏览器的支持.我错过了一些重要的东西吗?或者是没有什么区别?
在进一步调查中,我们注意到,当我们navigator.geolocation
在Chrome中使用它实际上是打电话给谷歌api获取信息(由6年前的答案支持).所以这引出了一个问题,它仍然有限吗?如果是这样的话在多长时间内?
aps*_*ers 19
Google Maps Geolocation API是一个HTTP端点,可接受用户提供的有关附近Wifi网络和手机信号塔的JSON数据,并生成用户位置的估算值.
HTML5 navigator.geolocation
对象提供了一个浏览器API,它执行一些操作,然后生成用户位置的估计值.从W3C地理定位规范:
API本身与底层位置信息源无关.常见的位置信息源包括全球定位系统(GPS)和从网络信号推断的位置,例如IP地址,RFID,WiFi和蓝牙MAC地址,以及GSM/CDMA小区ID,以及用户输入.
该navigator.geolocation
功能可以使用浏览器应用程序可用的任何信息,包括来自设备的GPS硬件的任何信息(如果有的话).当然,它也可以使用可以访问的任何第三方Web API(可能包括Google Maps Geolocation API).没有必须使用的必要方法或输入; 浏览器可以做任何事情来进行位置估算.它可能比谷歌的方法更好或更差,取决于他们的具体实施,或浏览器可能(如你所建议)实际上直接使用谷歌的API.
简而言之,谷歌的API是一种方式,"基于这个单元格和Wifi信息,告诉我我在哪里." HTML5 API是一种告诉浏览器的方式,"您可以访问Internet以及我的设备可用的所有物理输入;以某种方式找出我的位置."
我并不感到惊讶,如果没有GPS,浏览器可能会将其地理位置工作外包给像谷歌这样的第三方服务.浏览器供应商通常对制作浏览器感兴趣,而不是编写强大的服务来解决将单元/ Wifi数据转换为位置信息的难题.此外,它需要大量关于各种塔和Wifi SSID位置的地理空间数据.它会使浏览器膨胀以在本地保存所有信息,并且任何尝试让thevendor远程托管信息都会在功能上成为谷歌已知的良好服务的竞争对手.
小智 6
HTML5 API将触发模式弹出窗口,要求用户授予权限,而Google Maps Geolocation API将绕过该弹出窗口。尽管HTML5的范围可以更深,这取决于浏览器的实现方式,但它们本身的位置收集方法非常相似。
HTML5示例-https: //developer.mozilla.org/zh-CN/docs/Web/API/Geolocation/Using_geolocation
Google Maps Geolocation示例-http: //webkay.robinlinus.com/
另请参阅:https : //developers.google.com/maps/articles/geolocation