腾讯地图计算两点间距离

本文详细介绍了在遇到百度地图在iOS小程序中显示错误的问题后,改用腾讯地图进行定位和距离计算的过程。作者分享了如何使用H5定位结合腾讯地图逆地址解析实现区县级别的定位,并展示了利用腾讯地图JavaScript API计算两点间距离的具体实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇没来得及说,之所以把百度地图换成腾讯地图,是因为在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
                  }
             });
          }

 

 

 

 

 

### 关于腾讯地图距离计算SDK的信息 #### 腾讯地图距离计算功能概述 腾讯地图提供了丰富的API接口来支持开发者完成各种地理信息处理工作,其中包括距离计算的功能。通过这些API可以方便地获取两点的直线距离或是路径规划后的实际行驶里程数。 #### 接入方式与初始化设置 为了能够正常使用腾讯地图距离计算服务,在项目中需要先引入腾讯位置服务的小程序SDK[^1]。对于微信小程序而言,可以从官方提供的开发文档找到详细的接入指南[^2]。通常情况下,这涉及到注册应用并获得相应的密钥(Key),以及按照指引安装必要的依赖库文件。 #### 实现距离计算的方法介绍 当完成了基础环境搭建之后,就可以利用`qqmapsdk.calculateDistance()`这样的函数来进行简单的两坐标距离测量了。此方法接受参数对象作为输入,其中至少应包含起点和终点的位置信息(纬度经度)。下面给出了一段Python风格伪代码用于示意如何调用该API: ```python import qqmap_sdk # 假设这是已经正确导入的SDK模块 def get_distance(start_location, end_location): sdk_instance = qqmap_sdk.QQMapSDK('your_api_key_here') result = sdk_instance.calculateDistance({ "from": start_location, "to": end_location }) return result['distance'] if 'distance' in result else None ``` 需要注意的是上述例子仅作概念性描述,并不是真实可用的代码片段;具体实现细节请参照最新的[腾讯位置服务平台](https://lbs.qq.com/)所提供的文档资料。 #### 处理可能遇到的问题 如果在尝试集成或使用过程中遇到了诸如显示异常、加载失败等问题,则建议查阅相关错误日志并与官方提供的常见问题解答对比排查原因。此外,确保遵循所有安全性和权限方面的指导原则也很重要,比如适当申请所需的定位权限等。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值