在微信小程序中插入个性化地图:进入腾讯地址服务官网,控制台、个性化渣姿此地图、个性化样册或式、样如迅式选择。>
先定位目前的位置,再根据输入的目的地进行两地之间的距离计算。(前提是先导入高德地图相应的sdk包)。
对于iOS或者安卓同学来说,可能会觉得特别简单吧。OC里就有原生类CLLocation计算坐标点距离。当然,大多数时候我们都是直接使用第三方计算,比如百度SDK。
但是接触到微信小程序后,由于可能刚起步,许多API并不完善。像百度SDK关于微信小程序的就没有提供这样的接口去计算。 百度地图微信小程序JS API
仔细翻一番看看,在开发指南->获取地图数据 菜单下只看到4个最基本的功能(POI检索、POI检索热词联想、逆地址解析、天气查询),并没有看到关于计算距离的。看到这些还好,至少不会继续下去入坑了。
后来我就度娘了,第一条检索就是腾讯地图开放平台的内容。这也是为什么今天我要写这篇文章的原因,我入坑了。友情提示,使用腾讯地图确实可以计算两坐标距离,但是呢?只能是10km以内的距离。不然调用后返握帆回结果: status: 373, message: "起终点距离超长"
如果不在意只是10km以内距离的话,想要去集成腾讯地图SDK,文档在此 腾讯地图微信小程序JavaScript SDK
最终解决方案只能自段哪雹己算了,不用第三方了。
//计算两坐标点之间的距离
getDistance: function (lat1, lng1, lat2, lng2) {
lat1 = lat1 || 0
缓首 lng1 = lng1 || 0
lat2 = lat2 || 0
lng2 = lng2 || 0
var rad1 = lat1 * Math.PI / 180.0
var rad2 = lat2 * Math.PI / 180.0
var a = rad1 - rad2
var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0
var r = 6378137
return (r * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos(rad2) * Math.pow(Math.sin(b / 2), 2)))).toFixed(0)
},
需要注意的是,该方法返回单位为米,如果想要转换成公里,除以1000即可。
近期在做一款彩票服务类项目中用到了腾讯地图提供的小程序解决方案,拿来给大家分享一下!使用起来非常简单,就是一些功能还有待完善。
官方文档旁陵: http://lbs.qq.com/qqmap_wx_jssdk/index.html
步骤:
结果效果图:
5.1.2 buy.wxml 主要样式运余戚采用weui
5.2 关键词输入提示getSuggestion(options:Object)
用于获取输入关键字的补完与提示,帮助用户快速输入。
示例:
5.3 距离计算calculateDistance(options:Object)
计算一个点到多点的毁握步行、驾车距离。
示例:
5.4 另外还有以下功能,就不一一演示了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)