地理位置信息

来源:互联网 发布:电视机怎么连接网络 编辑:程序博客网 时间:2024/04/27 12:30
使用HTML 5来获得地理位置信息是非常容易的。它可以依赖你的IP地址,设备上有的GPS装置等方法取得你当前的地理位置信息。与手机一样,取得用户当前的地理位置信息需要通过用户的许可,以浏览器为例,它会在工具栏弹出一个提示,询问用户是否容许该网站使用当前的地理位置信息。


在确认浏览器支持HTML 5的地理信息之后,可以使用navigator.geolocation.getCurrentPosition()来取得当前的位置信息。navigator.geolocation.getCurrentPosition()支持两个回调方法,一个用来处理正确的地理位置请求,一个用来进行错误处理。比如通过本文最后的页面可以取得当前所在位置的经度和纬度,并正确的处理失败信息。


getCurrentPosition支持三个查询选项:
enableHighAccuracy - 是否用高精度进行定位(使用高精度,则会使调用更慢)
timeout - 查询超时设定(以毫秒为单位)
maximumAge - 用来设定地理位置失效重查时间,以便进行实时位置跟踪


得到用户的地理位置之后就可以调用各种API完成不同的服务了,比如加载地图、基于地理位置的推荐,等等。


一个工作的示例页面(要注意的是chrome在本地无法执行地理位置请求,需要将相应页面部署在web服务器下方可开始使用地理位置服务。firefox没有该要求)


<html><head><title>Geo location</title></head><body><p><script language="Javascript">function show_map(position){        document.write("Latitude: "+position.coords.latitude);        document.write("<br>");        document.write("Longitude: "+position.coords.longitude);}function handle_error(err) {switch(err.code) {case 1:document.write("用户不让用地理位置信息");break;case 2:document.write("查询失败,当前可能无网络");break;case 3:document.write("查询超时");break;default:document.write("未知原因查询失败");break;}}navigator.geolocation.getCurrentPosition(show_map);</script></p></body></html>