關于經緯度十進制表示法
對于兩個點,在緯度相等的情況下:
經度每隔0.00001度,距離相差約1米;每隔0.0001度,距離相差約10米;每隔0.001度,距離相差約100米;每隔0.01度,距離相差約1000米;每隔0.1度,距離相差約10000米。
對于兩個點,在經度相等的情況下:
緯度每隔0.00001度,距離相差約1.1米;每隔0.0001度,距離相差約11米;每隔0.001度,距離相差約111米;每隔0.01度,距離相差約1113米;每隔0.1度,距離相差約11132米
根據地球上任意兩點的經緯度計算兩點間的距離
地球是一個近乎標準的橢球體,它的赤道半徑為6378.140千米,極半徑為 6356.755千米,平均半徑6371.004千米。如果我們假設地球是一個完美的球體,那么它的半徑就是地球的平均半徑,記為R。如果以0度經線為基 準,那么根據地球表面任意兩點的經緯度就可以計算出這兩點間的地表距離(這里忽略地球表面地形對計算帶來的誤差,僅僅是理論上的估算值)。設第一點A的經 緯度為(LonA, LatA),第二點B的經緯度為(LonB, LatB),按照0度經線的基準,東經取經度的正值(Longitude),西經取經度負值(-Longitude),北緯取90-緯度值(90- Latitude),南緯取90 緯度值(90 Latitude),則經過上述處理過后的兩點被計為(MLonA, MLatA)和(MLonB, MLatB)。那么根據三角推導,可以得到計算兩點距離的如下公式:
C = sin(MLatA)sin(MLatB)cos(MLonA-MLonB) cos(MLatA)*cos(MLatB)
Distance = RArccos(C)Pi/180
這里,R和Distance單位是相同,如果是采用6371.004千米作為半徑,那么Distance就是千米為單位,如果要使用其他單位,比如mile,還需要做單位換算,1千米=0.621371192mile
如果僅對經度作正負的處理,而不對緯度作90-Latitude(假設都是北半球,南半球只有澳洲具有應用意義)的處理,那么公式將是:
C = sin(LatA)sin(LatB) cos(LatA)cos(LatB)*cos(MLonA-MLonB)
Distance = RArccos(C)Pi/180
以上通過簡單的三角變換就可以推出。
如果三角函數的輸入和輸出都采用弧度值,那么公式還可以寫作:
C = sin(LatAPi/180)sin(LatBPi/180) cos(LatAPi/180)cos(LatBPi/180)cos((MLonA-MLonB)Pi/180)
Distance = RArccos(C)Pi/180
也就是:
C = sin(LatA/57.2958)sin(LatB/57.2958) cos(LatA/57.2958)cos(LatB/57.2958)*cos((MLonA-MLonB)/57.2958)
Distance = RArccos(C) = 6371.004Arccos(C) kilometer = 0.6213711926371.004Arccos(C) mile = 3958.758349716768*Arccos(C) mile