• H5+百度地图定位


      1 <!DOCTYPE html>
      2 <html lang="en">
      3     <head>
      4     <meta charset="UTF-8">
      5     <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
      6     <title>获取地理位置</title>
      7     <style>
      8     html,body,#allmap{
      9     width:100%;
     10     height:100%;
     11     }
     12     </style>
     13     </head>
     14     <body>
     15         <div id="box"></div>
     16         <div id="allmap"></div>
     17         
     18         <script>
     19             var map;
     20             //异步加载地图
     21             function loadJScript() {
     22                 var script = document.createElement("script");
     23                 script.type = "text/javascript";
     24                 script.src = "http://api.map.baidu.com/api?v=2.0&ak=j9Qhl3n6K2RbPb2EnYr5LW0mEyaacdiC&callback=init";
     25                 document.body.appendChild(script);
     26             }
     27             function init() {
     28                 var map1 = new BMap.Map("allmap"); // 创建Map实例
     29                 var point = new BMap.Point(110, 38); // 创建点坐标
     30                 map1.centerAndZoom(point,15);
     31                 map1.enableScrollWheelZoom(); //启用滚轮放大缩小
     32                 map=map1;
     33             }
     34             window.onload = loadJScript;
     35             //异步加载地图
     36             //获取经纬度
     37             var x = document.querySelector("#box");
     38             function getLocation(){
     39                 if(navigator.geolocation){
     40                     console.log("123");
     41                     navigator.geolocation.getCurrentPosition(function(position){
     42                         console.log(456);
     43                         x.innerHTML ="纬度:"+position.coords.latitude +"<br>经度:"+
     44                         position.coords.longitude;
     45                         var longitude = position.coords.longitude,latitude = position.coords.latitude;
     46                         //调用百度地图api:
     47                         theLocation(map,longitude,latitude)
     48                     },
     49                     function (error){
     50                         switch(error.code)
     51                         {
     52                         case error.PERMISSION_DENIED:
     53                         x.innerHTML="User denied the request for Geolocation."
     54                         break;
     55                         case error.POSITION_UNAVAILABLE:
     56                         x.innerHTML="Location information is unavailable."
     57                         break;
     58                         case error.TIMEOUT:
     59                         x.innerHTML="The request to get user location timed out."
     60                         break;
     61                         case error.UNKNOWN_ERROR:
     62                         x.innerHTML="An unknown error occurred."
     63                         break;
     64                         }
     65                     },
     66                     {
     67                     // 指示浏览器获取高精度的位置,默认为false
     68                     enableHighAcuracy: true,
     69                     // 指定获取地理位置的超时时间,默认不限时,单位为毫秒
     70                     timeout: 5000,
     71                     // 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
     72                     maximumAge: 3000
     73                     }
     74                     );
     75                 }else{
     76                     x.innerHTML="该浏览器不支持获取地理位置!";
     77                     alert('123');
     78                 }
     79             }
     80             function theLocation(map,longitude,latitude) {
     81                 if (longitude != "" && latitude != "") {
     82                     map.clearOverlays();
     83                     var new_point = new BMap.Point(longitude, latitude);
     84                     //坐标转换
     85                     var convertor = new BMap.Convertor();
     86                     var pointArr = [];
     87                     pointArr.push(new_point);
     88                     convertor.translate(pointArr, 1, 5, function(data){
     89                         if(data.status === 0) {
     90                         //标注转换后的坐标
     91                         var marker = new BMap.Marker(data.points[0]);
     92                         map.addOverlay(marker);
     93                         var label = new BMap.Label("您现在的位置", {offset: new BMap.Size(20, -10)});
     94                         marker.setLabel(label); //添加百度label
     95                         map.setCenter(data.points[0]);
     96                         map.centerAndZoom(data.points[0],18);
     97                         }
     98                     })
     99                 }
    100             }
    101             //获取位置
    102             getLocation();
    103         </script>
    104     
    105     </body>
    106 </html>
  • 相关阅读:
    Adventure C CF-665E(字典树、二进制)
    实验7投资问题
    Beautiful Array CF-1155D(DP)
    Salary Changing CF-1251D(二分)
    Beautiful Sets of Points CF-268C(乱搞)
    Vasya And Array CF1187C(构造)
    Tree Painting CF-1187E(换根DP)
    Vus the Cossack and Numbers CF-1186D(思维)
    Tree POJ-1741(点分治+树形DP)
    Magical Girl Haze 计蒜客-A1958(分层最短路)
  • 原文地址:https://www.cnblogs.com/chengyunshen/p/7194228.html
Copyright © 2020-2023  润新知