使用HTML5进行地理位置定位。误差在+-500m

ExpandedBlockStart.gif 代码
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml"  xml:lang ="en"  lang ="en" >
    
< head >
        
< meta  http-equiv ="Content-Type"  content ="text/html; charset=UTF-8" >
        
< title > Geolocation 对象,Geolocation 与 Google Map 交互 ------ JS
            Mix
</ title >
    
</ head >
    
< body >
        
< input  type ="button"  id ="getPos"  value ="获取我的位置" >
        
< div  id ="info"  class ="" >
            您所在的位置: 经度
            
< span  class ="tip" > unknown </ span > ,纬度
            
< span  class ="tip" > unknown </ span >
        
</ div >

        
< script  type ="text/javascript" >
            
var  t  =   0 ;
            
var  dom  =  {
                btn : document.getElementById(
' getPos ' ),
                info : document.getElementById(
' info ' )
            };

            dom.btn.onclick 
=   function (){
                
if  (navigator.geolocation) {
                    dom.info.innerHTML 
=   " 请等待查询结果返回 " ;
                    dom.info.className 
=   " warn " ;
                    navigator.geolocation.getCurrentPosition(getPositionSuccess,getPositionError,{timeout:
5000 });
                }
else  {
                     dom.info.innerHTML 
=   " 抱歉,您所使用的浏览器不支持 Geolocation 接口 " ;
                     dom.info.className 
=   " warn " ;
                }
            }
            
            
            
function  getPositionSuccess(position){
                
var  lat  =  position.coords.latitude;
                
var  lng  =  position.coords.longitude;
                dom.info.innerHTML 
=   " 您所在的位置: 经度 "   +  lat  +   " ,纬度 "   +  lng;
                
                
                
if ( typeof  position.address  ===   " undefined " ){
                    dom.info.innerHTML 
+=   " <br /><span class='tip'>您的浏览器目前仅提供坐标查询,使用 Firefox 3.5+ 可获得更多信息</span> " ;
                }
else {
                    dom.info.innerHTML 
+=   " <br /><span class='tip'> "   +  position.address.country  +   "  ,  "   +  position.address.region  +   "  ,  "   +  position.address.city + " </span> " ;
                }
            }
            
            
            
            
function  getPositionError(error){
                
switch (error.code){
                    
case  error.TIMEOUT :
                        dom.info.innerHTML 
=   " 连接超时,请重试 " ;
                        
break ;
                    
case  error.PERMISSION_DENIED :
                        dom.info.innerHTML 
=   " 您拒绝了使用位置共享服务,查询已取消 " ;
                        
break ;
                    
case  error.POSITION_UNAVAILABLE : 
                        dom.info.innerHTML 
=   " 亲爱的火星网友,非常抱歉<br />我们暂时无法为您所在的星球提供位置服务 " ;
                        
break ;
                }
            }
            
        
</ script >
    
</ body >
</ html >

 参考文献:

http://www.jsmix.com/html5/try-out-geolocation.html 

转载于:https://www.cnblogs.com/zc22/archive/2011/01/19/1939293.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值