Html5中的地理位置开发应用

最近在看HTML5中关于地理位置定位的相关技术, 在 HTML5 中,当请求一个位置信息时,如果用户同意,浏览器就会返回位置信息,该位置信息是通过支持地理定位功能的底层设备(比如笔记本电脑或手机)提供给浏览器的。位置信息由纬度、经度坐标和一些其他元数据组成。

例如北京故宫的位置信息主要由一对纬度和经度坐标组成:纬度:北纬 39.9,经度:东经 116.4。
经纬度坐标有两种表示方式:十进制格式(例如 39.9)和 DMS(Degree Minute Second,角度)格式(例如 39 ° 54 ′ 20 ″)。HTML5 Geolocation API 返回的坐标格式为十进制格式。除了纬度和经度坐标,HTML5 Geolocation 还提供位置坐标的准确度。除此之外,它还会提供其他一些元数据,比如海拔、海拔准确度、行驶方向和速度等,具体情况取决于浏览器所在的硬件设备。

HTML 预览

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">    
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">    
  3.     <head>    
  4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    
  5.         <title>Geolocation 对象,Geolocation 与 Google Map 交互 ------ JS    
  6.             Mix</title>    
  7.     </head>    
  8.     <body>    
  9.         <input type="button" id="getPos" value="获取我的位置">    
  10.         <div id="info" class="">    
  11.             您所在的位置: 经度    
  12.             <span class="tip">unknown</span>,纬度    
  13.             <span class="tip">unknown</span>    
  14.         </div>    
  15.     
  16.         <script type="text/javascript">    
  17.             var t = 0;    
  18.             var dom = {    
  19.                 btn : document.getElementById('getPos'),    
  20.                 info : document.getElementById('info')    
  21.             };    
  22.     
  23.             dom.btn.onclick = function(){    
  24.                 if (navigator.geolocation) {    
  25.                     dom.info.innerHTML = "请等待查询结果返回";    
  26.                     dom.info.className = "warn";    
  27.                     navigator.geolocation.getCurrentPosition(getPositionSuccess,getPositionError,{timeout:5000});    
  28.                 }else {    
  29.                      dom.info.innerHTML = "抱歉,您所使用的浏览器不支持 Geolocation 接口";    
  30.                      dom.info.className = "warn";    
  31.                 }    
  32.             }    
  33.                 
  34.                 
  35.             function getPositionSuccess(position){    
  36.                 var lat = position.coords.latitude;    
  37.                 var lng = position.coords.longitude;    
  38.                 dom.info.innerHTML = "您所在的位置: 经度"   lat   ",纬度"   lng;                 
  39.                 if(typeof position.address === "undefined"){    
  40.                     dom.info.innerHTML  = "<br /><span class='tip'>您的浏览器目前仅提供坐标查询,使用 Firefox 3.5  可获得更多信息</span>";    
  41.                 }else{    
  42.                     dom.info.innerHTML  = "<br /><span class='tip'>"   position.address.country   " , "   position.address.region   " , "   position.address.city "</span>";    
  43.                 }    
  44.             }    
  45.                 
  46.                 
  47.                 
  48.             function getPositionError(error){    
  49.                 switch(error.code){    
  50.                     case error.TIMEOUT :    
  51.                         dom.info.innerHTML = "连接超时,请重试";    
  52.                         break;    
  53.                     case error.PERMISSION_DENIED :    
  54.                         dom.info.innerHTML = "您拒绝了使用位置共享服务,查询已取消";    
  55.                         break;    
  56.                     case error.POSITION_UNAVAILABLE :     
  57.                         dom.info.innerHTML = "亲爱的火星网友,非常抱歉<br />我们暂时无法为您所在的星球提供位置服务";    
  58.                         break;    
  59.                 }    
  60.             }    
  61.                 
  62.         </script>    
  63.     </body>    
  64. </html>    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值