地图经纬度计算 ????
deg2rad将角度转换成弧度,请将角度乘以 #pi / 180。为了将弧度转换成角度,请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方,或者小于等于 -2 的 63 次方,将导致计算溢出。
.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 地球半径, 整数型
.子程序 _按钮1_被单击
输出调试文本 (distanceBetween (1, 2, 3, 4))
.子程序 distanceBetween, 整数型
.参数 fP1Lat, 双精度小数型
.参数 fP1Lon, 双精度小数型
.参数 fP2Lat, 双精度小数型
.参数 fP2Lon, 双精度小数型
.局部变量 fRadLat1, 双精度小数型
.局部变量 fRadLon1, 双精度小数型
.局部变量 fRadLon2, 双精度小数型
.局部变量 fRadLat2, 双精度小数型
.局部变量 fD1, 双精度小数型
.局部变量 fD2, 双精度小数型
.局部变量 fP, 双精度小数型
地球半径 = 6378137
fRadLon1 = deg2rad (fP1Lon)
fRadLon2 = deg2rad (fP2Lon)
fRadLat1 = deg2rad (fP1Lat)
fRadLat2 = deg2rad (fP2Lat)
fD1 = 取绝对值 (fRadLat1 - fRadLat2)
fD2 = 取绝对值 (fRadLon1 - fRadLon2)
fP = 求次方 (求正弦 (fD1 ÷ 2), 2) + 求余弦 (fRadLat1) × 求余弦 (fRadLat2) × 求次方 (求正弦 (fD2 ÷ 2), 2)
返回 (到整数 (地球半径 × 2 × asin (求平方根 (fP)) + 0.5))
.子程序 deg2rad, 双精度小数型
.参数 参数, 双精度小数型
.局部变量 a, 双精度小数型
a = 参数 × #pi ÷ 180
返回 (a)
.子程序 asin, 双精度小数型, 公开, 返回弧度值
.参数 正弦值, 双精度小数型, , -1到1,否则返回0
.如果真 (正弦值 < -1 或 正弦值 > 1)
返回 (0)
.如果真结束
返回 (求反正切 (正弦值 ÷ 求平方根 (1 - 正弦值 × 正弦值)))
.子程序 求反正弦值, 双精度小数型, 公开, 返回角度值
.参数 正弦值, 双精度小数型, , -1到1,否则返回0
.如果真 (正弦值 < -1 或 正弦值 > 1)
返回 (0)
.如果真结束
返回 (求反正切 (正弦值 ÷ 求平方根 (1 - 正弦值 × 正弦值)) × 180 ÷ #pi)