PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > HTML5+CSS3教程 > 正文

    HTML5获取地理经纬度并通过百度接口得到实时位置

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:HTML5获取地理经纬度并通过百度接口得到实时位置
    HTML5获取地理经纬度并通过百度接口得到实时位置

    1. <!DOCTYPE html>   
    2. <html>   
    3. <head>   
    4. <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />   
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
    6. <title>获取当前位置</title>   
    7. <style type="text/css">   
    8. html{height:100%}   
    9. body{height:100%;margin:0px;padding:0px}   
    10. #container{height:500px; width: 500px; margin: 0 auto;}   
    11. </style>   
    12. <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"
    13. //v2.0版本的引用方式:src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥" 
    14. //v1.4版本及以前版本的引用方式:src="http://api.map.baidu.com/api?v=1.4&key=您的密钥&callback=initialize" 
    15. </script> 
    16. </head>   
    17.   
    18. <body> 
    19.     <div style="text-align: center; margin: 20px auto;"
    20.             <p id="demo">点击这个按钮,获得您的经纬度:</p> 
    21.             <p id="position"></p> 
    22. <button onclick="getLocation()">获取位置</button> 
    23.         </div> 
    24. <div id="container"></div>  
    25. <script type="text/javascript">    
    26.         var map;   
    27.         var ggPoint; 
    28.         var marker; 
    29. function getLocation(){ 
    30.     //根据IP获取城市   
    31.     var myCity = new BMap.LocalCity();   
    32.     myCity.get(getCityByIP); 
    33.     var options={ 
    34.        enableHighAccuracy:true,  
    35.        maximumAge:1000 
    36.     } 
    37.     if(navigator.geolocation){ 
    38.        //浏览器支持geolocation 
    39.        navigator.geolocation.getCurrentPosition(onSuccess,onError,options); 
    40.         
    41.     }else
    42.         //浏览器不支持geolocation 
    43.         console.log("浏览器不支持"); 
    44.     } 
    45.  
    46. function onSuccess(position){ 
    47.      
    48.     var longitude =position.coords.longitude;//经度 
    49.     var latitude = position.coords.latitude;//纬度 
    50.     document.getElementById("demo").innerHTML = "程序已获取你所在的位置为:<br>经度"+longitude+",纬度"+latitude; 
    51.      
    52.     //--------------设置地图显示---------------- 
    53.     map = new BMap.Map("container");          // 创建地图实例 
    54.     ggPoint = new BMap.Point(longitude, latitude);  // 创建点坐标   
    55.     map.centerAndZoom(ggPoint, 15);                 // 初始化地图,设置中心点坐标和地图级别  
    56.     //--------------设置地图显示---------------- 
    57.      
    58.      
    59.     var convertor = new BMap.Convertor(); 
    60.     var pointArr = []; 
    61.     pointArr.push(ggPoint); 
    62.     convertor.translate(pointArr, 1, 5, translateCallback); 
    63.      
    64.      
    65.      
    66.      
    67.      
    68.     //--------------设置标注相关------------------- 
    69.     /*var marker = new BMap.Marker(point); // 创建点 
    70.     map.addOverlay(marker); 
    71.     marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 
    72.     marker.enableDragging();//设置点可拖动 
    73.     //--------------设置标注相关--------------------- 
    74.      
    75.      
    76.     //--------------获取地理位置--------------------- 
    77.     var geoc = new BMap.Geocoder(); 
    78.     geoc.getLocation(point, function(rs){ 
    79.         var addComp = rs.addressComponents; 
    80.         alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber); 
    81.     });*/   
    82.     //--------------获取地理位置---------------------- 
    83.      
    84.      
    85.      
    86.      
    87.      
    88.      
    89.      
    90. }            
    91.  
    92.  
    93.  
    94. //坐标转换完之后的回调函数 
    95. function translateCallback(data){ 
    96.     if(data.status === 0) { 
    97.         marker = new BMap.Marker(data.points[0]); 
    98.         map.addOverlay(marker); 
    99.         marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 
    100.         marker.enableDragging();//设置点可拖动 
    101.         marker.addEventListener("dragend",getAttr); 
    102.         //alert(marker.getPosition()); 
    103.         map.setCenter(data.points[0]); 
    104.         getPosit(data.points[0]); 
    105.     } 
    106.  
    107. function getAttr(){ 
    108.     var p = marker.getPosition();       //获取marker的位置 
    109.     //alert("marker的位置是" + p.lng + "," + p.lat);  
    110.     getPosit(new BMap.Point(p.lng, p.lat)); 
    111.  
    112.  
    113. function getPosit(obj){ 
    114.     var geoc = new BMap.Geocoder(); 
    115.     geoc.getLocation(obj, function(rs){ 
    116.         var addComp = rs.addressComponents; 
    117.         //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber); 
    118.         var address = "您的地址:" + addComp.province + "," + addComp.city + "," + addComp.district + "," + addComp.street + "," + addComp.streetNumber;  
    119.         document.getElementById("position").innerHTML = address; 
    120.         //var labelbaidu = new BMap.Label(address, { offset: new BMap.Size(20, -10) }); 
    121.         //marker.setLabel(labelbaidu); //添加百度标注  
    122.     }); 
    123.  
    124.  
    125.  
    126. //根据IP获取城市   
    127. function getCityByIP(rs) {   
    128.     var cityName = rs.name;   
    129.     alert("根据IP定位您所在的城市为:" + cityName);   
    130. }  
    131.  
    132. //失败时 
    133. function onError(error){ 
    134.     switch(error.code){ 
    135.        case 1: 
    136.        alert("位置服务被拒绝"); 
    137.        break
    138.  
    139.        case 2: 
    140.        alert("暂时获取不到位置信息"); 
    141.        break
    142.  
    143.        case 3: 
    144.        alert("获取信息超时"); 
    145.        break
    146.  
    147.        case 4: 
    148.         alert("未知错误"); 
    149.        break
    150.     } 
    151.  
    152.  
    153.  
    154. </script>   
    155. </body>   
    156. </html> 

     

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-142-5331-1.html
    相关热词搜索: