但是接触到微信小程序后,由于可能刚起步,许多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即可。
圆曲线程序CASIO(Fx-4800)方便现场施工放样及计算大家好!本人搞测量也就2,3年时间。编的小程序自己用感觉还好,不到之处望指正!谢谢!!
Lb1 O:{K} 转行
R″R=″:O″O=″:A″A=″:B″B=″:C=″C=″:D″D=″:K″K=″:N″N=″:T″T=″:L″L=″:E″E=″F″F=″ 转行
G=(K-O)÷R×180÷π 转行
U=R×sinG 转行
V=R(1-cosG) 转行
S=C+GD+TN 转行
X=A+UcosC-VDsinC+LcosS▲
Y=B+UsinC+VDsinC+LsinS▲
W″W1″=Pol(X-E,Y-F)▲
J<0=>360+J▲
≠=>J▲
K=K+20(可以根据自己要计算的桩号自己设置) 转行
Goto 0
说明:R:圆曲线半径O:起点桩号A:起点x坐标B:起点Y坐标 C:起点方位角D:路线左转或右转(左转-1,右转+1)K:待求点桩号N:边桩左幅或者右幅(左为-1,中桩为0,右幅为1)T:边桩与中桩的交角(正交,斜交都可以算)L:边桩到中桩的距离.备注:一般算中桩的坐标时N,T,L都为0就可以了E:置仪点X坐标F:置仪点Y坐标X,Y:即为你要算点的坐标
W1为在现场施工放样时方位角和距离
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)