HTML5定位+百度地图

HTML5定位、百度地图

    不知道怎么回事,用百度地图的定位自己用发现定位不准,又用了HTML5的定位,发现定位也不是太理想,暂时懒得改了。

HTML5 Geolocation API 用于获得用户的地理位置。

<script type="text/javascript">

// 百度地图API功能
 var map = new BMap.Map("allmap");
 //map.centerAndZoom("北京",12);
 navigator.geolocation.getCurrentPosition( // 该函数有如下三个参数
         function(pos){ // 如果成果则执行该回调函数
          var point = new BMap.Point(pos.coords.longitude,pos.coords.latitude);
         alert(pos.coords.accuracy);
          var myGeo = new BMap.Geocoder();
    // 根据坐标得到地址描述
    myGeo.getLocation(point, function(result) {
     if (result) {
      city=result.address;
      var addComp = result.addressComponents;
      //alert(addComp.province + "省, " + addComp.city + "市," + addComp.district + "县, " + addComp.street + "街道, " + addComp.streetNumber);
      $("#dingwei").text("您的位置:"+addComp.city  + addComp.district + addComp.street + addComp.streetNumber);
      //将获取的信息传至服务器
      var date={"PROV":addComp.province,"CITY":addComp.city,"COUNTY":addComp.district};
      jg=addComp.district;
        $.post(currentUrl+"EmlpoyeeAction/findEmlpoyee",date,function(json){
                          fwwd(json);
                      });
      
     }else{
      $("#dingwei").text("无法获取您的位置信息");
      //map.centerAndZoom(new BMap.Point(116.331398,39.897445),13);
      $("allmap").append("<img src=images/ems0.jpg/>");
     }
    });
         }, function(err){ // 如果失败则执行该回调函数
          $("#dingwei").text("无法获取您的位置信息");
          $("#allmap").append("<img src='images/ems0.jpg' width=100% height=100%/>");//定位失败默认显示此图片
         }, { // 附带参数
             enableHighAccuracy: false, // 提高精度(耗费资源)
             timeout: 6000, // 超过timeout则调用失败的回调函数
             maximumAge: 1000 // 获取到的地理信息的有效期,超过有效期则重新获取一次位置信息
         }
     );
  //位置坐标:json_data
 function fwwd(data_info){
  var pointArray = new Array();
  //chengshi={"PROV":addComp.province,"CITY":addComp.city,"COUNTY":addComp.district};
  //var zoom=chengshi.COUNTY!=null&&chengshi.COUNTY!=""?chengshi.COUNTY :chengshi.PROV;
  if(data_info!=""&&data_info!=null){
       for(var i=0;i<data_info.length;i++){
           var marker = new BMap.Marker(new BMap.Point(data_info[i][0],data_info[i][1]));  // 创建标注
          // var image="<img src='images/25.png' width='60' height='60'>";
           //var content = data_info[i][2];
            var image=data_info[i].length;
           if(image!=7){
            image="<img src='images/25.png' width='60' height='60'>";
           }else{
            image="<img width='60' height='60' src='"+currentUrl+"EmlpoyeeAction/findEmployeeImage?sid="+data_info[i][6]+"'>";
           }
           var content = "<div style='text-align:center' >"+image+"</div>"
        + "<div>联系人:" + data_info[i][2] + "</div>"
        + "<div>电话:" + data_info[i][3] + "</div>"
        + "<div>时间:08:00--17:00</div>"
        + "<div>地址:" + data_info[i][4] + "</div>"
        + "<div style='text-align:center'><a href='tel:" + data_info[i][3] + "'><img src='images/23.png'   width='100' height='45' ></a>&nbsp&nbsp&nbsp&nbsp<a href='sms:" + data_info[i][3] + "'><img src='images/24.png'   width='100' height='45' ></a></div>";
          
           map.addOverlay(marker);
           addClickHandler(content,marker);
           pointArray[i] = new BMap.Point(data_info[i][0], data_info[i][1]);
       }
       $("#chaxujg").text("附近快递员:共"+data_info.length+"个");
       map.setViewport(pointArray);
   }else{
    $("#chaxujg").text("附近快递员:共0个");
    map.centerAndZoom(jg,11);
   
  }
 }
 $('#touming').show(); 
 function addClickHandler(content,marker){
        marker.addEventListener("click",function(e){
                    openInfo(content,e)}
        );
    }
 //定义窗体格式
      var opts = {
        width : 260,     // 信息窗口宽度
        height: 220,     // 信息窗口高度
        //title : "信息窗口" , // 信息窗口标题
        enableMessage:false//设置不允许信息窗发送短息
 };
   
      $('#touming').show(); 
   function addClickHandler(content,marker){
          marker.addEventListener("click",function(e){
                      openInfo(content,e)}
          );
      }
   
     function openInfo(content,e){
         var p = e.target;
         var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
         var infoWindow = new BMap.InfoWindow(content,opts);  // 创建信息窗口对象
         map.openInfoWindow(infoWindow,point); //开启信息窗口
     }
    
 </script>

你可以使用百度地图 JavaScript API 来实现在 Vue 中进行定位。首先,你需要在你的 Vue 项目中引入百度地图 JavaScript API 的 SDK。 1. 在你的 HTML 文件中添加以下代码来引入百度地图的 SDK: ```html <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=YOUR_API_KEY"></script> ``` 请将 `YOUR_API_KEY` 替换为你自己申请的百度地图的 API 密钥。 2. 在你的 Vue 组件中,你可以使用 `mounted` 钩子函数来初始化地图和定位: ```javascript mounted() { // 创建地图实例 const map = new BMap.Map("map-container"); // 创建定位控件实例 const geolocation = new BMap.Geolocation(); // 获取位置信息 geolocation.getCurrentPosition((result) => { if (geolocation.getStatus() === BMAP_STATUS_SUCCESS) { // 定位成功,获取经纬度信息 const { point } = result; // 在地图上显示定位结果 map.centerAndZoom(point, 15); map.addOverlay(new BMap.Marker(point)); } else { // 定位失败 console.log("定位失败:" + geolocation.getStatus()); } }); }, ``` 在上面的代码中,我们通过 `BMap.Map` 创建了一个地图实例,并通过 `BMap.Geolocation` 创建了一个定位控件实例。然后,使用 `geolocation.getCurrentPosition` 方法获取位置信息,并根据定位结果在地图上进行展示。 3. 在你的 Vue 模板中,添加包含地图的容器: ```html <template> <div id="map-container"></div> </template> ``` 通过以上步骤,你就可以在 Vue 中使用百度地图进行定位了。记得替换 `YOUR_API_KEY` 为你自己的百度地图 API 密钥,并根据需要调整地图的样式和定位的精度等参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值