HTML5 地理位置定位(HTML5 Geolocation)
admin
2023-02-10 20:00:10
0次

   HTML5的强大,无需我过多的介绍,其中Geolocation地理定位是HTML5的重要特性之一。使用这个特性我们就可以开发出基于地理位置信息的应用。例如你要实现查询用户周边酒店、加油站等功能时,你可以调用百度地图、高德地图、google地图等接口,然后根据用户的具体地理坐标位置等信息来搜寻周边事物。

   当然,每个人的地理位置信息是属于他个人的隐私。所以一般游览器都会先询问用户是否愿意,如果用户拒绝的话,则用户位置信息是不可用的。

   废话不多说,直接上代码:

   以上是没有报错信息处理的代码。如果未能显示出纬度(Latitude)、经度(Longitude)信息的话,那你就得检查下游览器是否支持地理定位。

(1)如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。

(2)如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象。showPosition() 函数则是获得并显示经度和纬度。


   当然我们也可以有处理错误的功能反馈给用户:

function showError(error)
  {
  switch(error.code)
    {
    case error.PERMISSION_DENIED://用户不允许地理定位
      x.innerHTML="User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE://无法获取当前位置
      x.innerHTML="Location information is unavailable."
      break;
    case error.TIMEOUT://操作超时
      x.innerHTML="The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR://未知错误
      x.innerHTML="An unknown error occurred."
      break;
    }
  }

   getCurrentPosition() 方法的第二个参数用于处理错误。它规定当获取用户位置失败时运行的函数:

navigator.geolocation.getCurrentPosition(showPosition,showError);

 

   嗯,这样你就可以获得了用户的地理位置坐标信息。其实最重要的无非就是上面的那行代码,和获取坐标的两个方法:

position.coords.latitude//纬度
position.coords.longitude//经度


   就酱紫了?不,它还能获得些呢,客观别急,接着往下看。

   getCurrentPosition()--返回数据:

属性
描述
coords.latitude
十进制数的纬度
coords.longitude十进制数的经度
coords.accuracy位置精度
coords.altitude海拔,海平面以上以米计
coords.altitudeAccuracy位置的海拔精度
coords.heading方向,从正北开始以度计
coords.speed速度,以米/每秒计
timestamp响应的日期/时间

   

   嗯~是不是有点屌?但是你有没发现,这种定位并不是实时的。如果用户使用的是移动端,并且他在移动中,那坐标也必须跟随着在不停的改变中,而之前获得的坐标还有毛用啊!呵呵,莫慌!屌炸天的Geolocation对象,有个牛逼的方法:

   watchPosition() - 返回用户的当前位置,并继续返回用户移动时的更新位置。

   clearWatch() - 停止 watchPosition() 方法。

   如果你有台爱疯(iphone)之类精确的GPS设备,那就更是如虎添翼了。

   可以用手机或ipad去测试下,看看是否能实时定位。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...