腾讯地图计算两点间距离

上一篇没来得及说,之所以把百度地图换成腾讯地图,是因为在IOS中,小程序不能正确显示,具体出错如下图(我真是费老大劲找出来的),网上百度了好多,也有出现类似情况的,心痛,在小程序官方也没找到解决方案,若有人知道,望周知,定感激不尽。

换成腾讯地图后,出现定位偏差,而且而且,偏差很大,老板在濮阳,竟然显示的是上海,好吧,他过年的时候在上海。没办法,还是换成了H5定位。

具体的H5定位,已经在H5定位+腾讯地图逆地址解析 = 定位到区县这篇中写到了,有指教请移步该篇。

本篇说的是利用腾讯地图计算两点间的距离,是获取用户当前位置并计算一个固定位置。

在这个链接里,可以查看腾讯地图JavaScript API方法 :https://lbs.qq.com/javascript_v2/demo.html

具体实现逻辑:

//获取当前用户经纬度

//设定已有经纬度

//判断距离

代码如下(接H5定位+腾讯地图逆地址解析 = 定位到区县这个JS写):

function showPosition(position){
            lat=position.coords.latitude; 
            lng=position.coords.longitude;
            //调用地图命名空间中的转换接口   type的可选值为 1:GPS经纬度,2:搜狗经纬度,3:百度经纬度,4:mapbar经纬度,5:google经纬度,6:搜狗墨卡托
            qq.maps.convertor.translate(new qq.maps.LatLng(lat,lng), 1, function(res){
                  //取出经纬度并且赋值
                  center = res[0];
                  map = new qq.maps.Map(document.getElementById("container"),{
                        center:  center,
                        zoom: 12
                    });
                  //逆地址解析
                  geocoder = new qq.maps.Geocoder({
                        complete : function(result){
                          let district = result.detail.addressComponents.district;   //定位到区县
                          document.getElementById(dwTxt).value(district);
                        }
                  });
                  geocoder.getAddress(center);

                  //计算两点间的距离
                  var start = new qq.maps.LatLng(lat, lng);
                  var endA = new qq.maps.LatLng(38, 115);
                  var endB = new qq.maps.LatLng(34, 118);
                  var distanceA = Math.round(qq.maps.geometry.spherical.computeDistanceBetween(start, endA)*10)/10;
                  var distanceB = Math.round(qq.maps.geometry.spherical.computeDistanceBetween(start, endB)*10)/10;
                  //判断距离是否大于20000m
                  if(parseInt(distanceA) <= 20000 && parseInt(distanceB) > 20000){
                   bababbabababablllalallalala
                    });
                  }else if(parseInt(distanceB) <= 20000 && parseInt(distanceA) > 20000){
                    balbalbalabalbalbalbalbalabalabalabalabalba
                    });
                  }else{
                    aaaaaaaaaaaaaaaaaaa
                  }
             });
          }

 

 

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值