
但是接触到微信小程序后,由于可能刚起步,许多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,4850P,可计算线路中心的缓和曲线、圆曲线、直线段,中、边桩坐标及切线方位角。
1、A? 输入转角:左转为负,右转为正
2、R? 输入圆曲线半径
3、LS? 输入缓和曲线长度
4、JD(DK)? 输入交点里程桩号
5、X(JD)? 输入本交点X坐标
6、Y(JD)? 输入本交点Y坐标
7、FWJ? 输入待求点切线方位角
9、J? 输入0程序计算中桩,输入1程序计算租蠢边桩
10、Z? 输入里程桩号
1 A:R:C“LS”:D“JD(DK)”
2 P=C∧2/24/R-C∧4/2688/R∧3
3 Q=C/2-C∧3/240/R∧2
4 B=90C/兀/R
5 T=(R+P)tan(AbsA/2)+Q◢
6 W=(R+P)/cos(A/2)-R◢
7 L=((AbsA)-2B)兀R/180+2C◢
8 G“ZH”=D-T◢
9 H“HY”=G+C◢
10 I“QZ”=G+L/2◢
11 K“YH”=G+L-C◢
12 M“HZ”=G+L◢
13 N”X(JD)”:E”Y(JD)”:F”FWJ”: J
14 A<0=>S=-1:≠=>S=1⊿ (提示:0为数字“0”)
15 U=F+A/2+90S
16 V=W+R
17 B=N+VcosU
18 O=E+VsinU (提示:O为字母“O”)
19 Lbl 1
20 {Z}
21 Z≤G=>L=T+G-Z
22 V=F+180
23 U=F
24 Goto 2⊿
25 Z≤H=>L=Z-G
26 V=L-L∧5/(90R∧2C∧2)
27 L=30L∧2S/(兀RC)
28 P=F+180
29 Q=F+L
30 U“FWJ”=F+3L◢
31 Goto 4⊿
32 Z≤K=>L=F+A/2+90S+180+180(Z-I)S/R/兀
33 U“FWJ”=L+90S◢
34 Goto 5⊿
35 Z≤M=>L=M-Z
36 V=L-L∧5/(90R∧2C∧2)
37 L=30SL∧2/(兀RC)
38 P=F+A
39 Q=F+A+180-L
40 U=F-3L+A◢
41 Goto4⊿
42 Z>M=>L=Z-M+T
43 U=F+A
44 V=U
45 Goto 2
46 Lbl 2
47 X=N+LcosV◢
48 Y=E+LsinV◢
49 Goto 6⊿
50 Lbl 3
51 {W}
52 P“XL”=X+Wcos(U-90) ◢
53 Q“YL”=Y+Wsin(U-90) ◢
54 P“XR”=X+Wcos(U+90) ◢
55 Q“YR”=Y+Wsin(U+90) ◢
56 Goto 1
57 Lbl 4
58 X=N+TcosP+VcosQ◢
59 Y=E+TsinP+VsinQ◢
60 Goto 6
61 Lbl 5
62 X=B+R cosL◢
63 Y=O+RsinL◢ (提示:O为字母“O”)
64 Goto 6
65 Lbl 6
66 J=1=>Goto 3⊿
67 Goto 1
注:
1、◢ 为输出指令,若在后面加上,即可显示前面的计算结果输出在屏幕上。
2、括号()为说明,请不要输入。
计算参数:
A?=53°12′46.1〃
R?=4500
LS?=360
JD(DK)?=10021.359
T=2434.65260
W=534.31251
L=4539.32398
ZH=7586.70640
HY=7946.70640
QZ=9856.36839
YH=11766.03038
HZ=12126.03038
X(JD)?=3378226.731
Y(JD)?=456053.721
FWJ?=98°56′55.62〃
J?=1
Z?=10000
核对结果:
FWJ=487°23′2.26〃
X=3377706.668
Y=455858.525
W?=10(……偏距)
XL=3377714.613(……偏左坐标)
YL=455864.5966(……偏左坐标)
XR=3377698.722(……偏右坐标)
YR=455852.4535(……偏右坐标)
[Excel]综合曲线坐标计算程序bata3http://www.fffsky.com/blog/post/ZHQX-bata3.html
综合曲线坐标计算程序bata3
说明附属表
一、简要说明
1、本程序可对单圆曲线、对称缓和曲线、不对称缓和曲线进行中、边桩坐标计算。
2、数慧腊御据输入时应在"曲线要素表"中有浅黄底色的单元格区内输入、其他均为自动计算。
3、当线路az左转时,转角前面前岩加负号;当线路ay右转时,转角为正值输入。
4、只需输入"坐标计算表"的里程桩号、边桩偏距即可自动计算坐标。
5、计算边桩时交角均为90°。
6、"放样计算表"中可计算出前视方位角和距离,为现场放线人员局改减少了计算繁琐。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)