给出两点之间的经纬度,计算两点之间的距离,使用如下公式:
三角函数不必说了,Lat12是两点的纬度差,Lon是两点的经度差,Lat1和Lat2分别是两点的纬度,6378.137为地球的半径。
代码如下:
#!/usr/local/bin/julia
args = ARGS # 解析命令行参数
while length(args) < 4
println("你没有在命令行参数输入两点的经纬度,或输入的经纬度有缺失,请输入经纬度")
println("请按照两点经纬度输入:")
push!(args, readline())
end
A = (parse(Float64,args[1]), parse(Float64,args[2])) # A点经纬度
B = (parse(Float64,args[3]), parse(Float64,args[4])) # B点经纬度
println("第一个点的经纬度:", A)
println("第二个点的经纬度:", B)
a = A[2] - B[2] # AB两点的纬度差
b = A[1] - B[1] # AB两点的经度差
r = 6378.137 # 地球半径
s = 2asin(sqrt(sind(a/2)^2+cosd(A[2])*cosd(B[2])*sind(b/2)^2))*r # 计算函数5
println("两点距离为:", s," km")
println("两点距离为:", s*1000, " m")
两种使用方式,如下:
一种是直接传递两点之间的经纬度,另一种是交互式输入两点之间的经纬度。
当然了,第一个点传递进去,第二个点交互输入也可以的
代码不多,也很容易用其他语言写,不过julia不用将度转成弧度计算三角函数值。
又学到了新的知识。
度分秒的输入形式暂不支持哈。