nhinkle..
13
HTML5 GeoLocation中往往是多比基于IP的GeoLocation中更准确.
基于IP的GeoLocation依赖于与ISP相关联的数据库来确定您的位置.当您的ISP服务于非常大的区域并提供动态IP地址时,这不起作用.今天一个城镇的地址明天可能会在100英里外.此外,这些数据库通常不经常更新.如果您的ISP出售IP块或将其移至新城镇,数据库可能仍会错误地认为您在其他地方.
HTML5位置使用浏览器提供的服务来确定您的位置.如果您的计算机内置了GPS(例如在许多移动设备和某些笔记本电脑上),它将准确知道您的位置.这使得它对具有导航或位置组件的webapp更有用.对于没有GPS的设备,它通常可以根据附近已知的无线信号和其他因素提供非常好的近似值,例如跟踪计算机在连接到互联网时经过的路由器.确切的实现取决于计算机,可用的硬件以及浏览器选择的操作方式.
例如,当我检查一个基于IP的位置服务时,它说我在一个特定的大城市,与我住在同一个大区,但它实际上距离大约50英里.当我使用基于HTML5位置的服务来确定我的位置时,它只有大约20 个街区.
如果您正在开发需要位置数据的Web应用程序,请尝试使用HTML5 GeoLocation.设置回退,以便在 HTML5位置失败时,您可以使用GeoIP解决方案.这样,您将在支持的浏览器和设备上获得最佳准确度,但是当HTML5数据不可用时,仍然会有适当的解决方案.
//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
}