html - 为什么选择 HTML5 地理定位?

标签 html geolocation

为什么 HTML5 地理定位可以让您分享您的位置?使用地理定位的主要目的是什么,因为您也可以通过 IP 地址获取位置。这两种方法有什么区别吗?

我问是因为地理定位需要用户的许可,而且并不适用于所有浏览器。

最佳答案

HTML5 GeoLocation 往往比基于 IP 的 GeoLocation 准确。

基于 IP 的地理定位依赖与 ISP 关联的数据库来确定您的位置。当您的 ISP 服务于非常大的区域并提供动态 IP 地址时,这将无法正常工作。今天在一个城镇的地址明天可能在 100 英里之外。此外,这些数据库通常不会经常更新。如果您的 ISP 出售 IP block 或将它们转移到新城镇,数据库可能仍会错误地认为您在其他地方。

HTML5 位置使用您的浏览器提供的服务来确定您的位置。如果您的计算机内置了 GPS(例如在许多移动设备和某些笔记本电脑上),它将准确知道您的位置。这使得它对于具有导航或位置组件的 Web 应用程序更加有用。对于没有 GPS 的设备,它通常可以根据附近已知的无线信号和其他因素提供非常好的近似值,例如跟踪您的计算机在连接​​到 Internet 时经过的路由器。确切的实现取决于计算机、它可用的硬件以及浏览器如何选择执行操作。

例如,当我检查基于 IP 的定位服务时,它说我在我居住的同一地区的一个特定大城市,但实际上距离大约 50 英里。 当我使用基于 HTML5 位置的服务来确定我的位置时,它只相差大约 20 个 block

如果您正在开发需要位置数据的网络应用程序,请尝试尽可能使用 HTML5 GeoLocation。设置回退,以便如果 HTML5 定位失败,您可以改用 GeoIP 解决方案。这样,您将在受支持的浏览器和设备上获得最佳准确性,但在 HTML5 数据不可用时仍然有一个解决方案。

如果您使用了 geolocation-javascript project from Google Code ,您可以使用以下代码:

//determine if device has geo location capabilities
if(geo_position_js.init()){
   geo_position_js.getCurrentPosition(success_callback,error_callback);
}
else{
   // use an AJAX request to look up the location based on IP address
}

关于html - 为什么选择 HTML5 地理定位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7541779/

相关文章:

mysql - 获取与邮政编码相关的所有城市

html - 通过拖放将 Ember 对象从一个列表移动到另一个列表

jquery - 处理表单发布、nodejs 和 JQueryMobile

javascript - HTML 选择下拉列表与 JavaScript 函数

javascript - Http 站点未检测到 Chrome 中的位置 - 问题

android - 使用位置查找运动转角

javascript - 使用 Google Maps API DistanceMatrixService 通过 API 计算我的当前位置和用户位置之间的距离

ruby - 如何获取ruby中第一个html标签和第二个html标签之间的内容

html - 我的全宽视频封面做错了什么?

java - 使用elasticsearch获取最近的位置