給出兩點之間的經(jīng)緯度,計算兩點之間的距離,使用如下公式:
三角函數(shù)不必說了,Lat12是兩點的緯度差,Lon是兩點的經(jīng)度差,Lat1和Lat2分別是兩點的緯度,6378.137為地球的半徑。
代碼如下:
#!/usr/local/bin/julia
args = ARGS # 解析命令行參數(shù)
while length(args) < 4
println("你沒有在命令行參數(shù)輸入兩點的經(jīng)緯度,或輸入的經(jīng)緯度有缺失,請輸入經(jīng)緯度")
println("請按照兩點經(jīng)緯度輸入:")
push!(args, readline())
end
A = (parse(Float64,args[1]), parse(Float64,args[2])) # A點經(jīng)緯度
B = (parse(Float64,args[3]), parse(Float64,args[4])) # B點經(jīng)緯度
println("第一個點的經(jīng)緯度:", A)
println("第二個點的經(jīng)緯度:", B)
a = A[2] - B[2] # AB兩點的緯度差
b = A[1] - B[1] # AB兩點的經(jīng)度差
r = 6378.137 # 地球半徑
s = 2asin(sqrt(sind(a/2)^2+cosd(A[2])*cosd(B[2])*sind(b/2)^2))*r # 計算函數(shù)5
println("兩點距離為:", s," km")
println("兩點距離為:", s*1000, " m")
兩種使用方式,如下:

julia1.png

julia2.png
一種是直接傳遞兩點之間的經(jīng)緯度,另一種是交互式輸入兩點之間的經(jīng)緯度。
當然了,第一個點傳遞進去,第二個點交互輸入也可以的

julia3.png
代碼不多,也很容易用其他語言寫,不過julia不用將度轉成弧度計算三角函數(shù)值。
又學到了新的知識。
度分秒的輸入形式暫不支持哈。