1. 怎麼計算兩地之間的地理距離
地球是一個近乎標準的橢球體,它的赤道半徑為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 = R*Arccos(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 = R*Arccos(C)*Pi/180
以上通過簡單的三角變換就可以推出。
如果三角函數的輸入和輸出都採用弧度值,那麼公式還可以寫作:
C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)
Distance = R*Arccos(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 = R*Arccos(C) = 6371.004*Arccos(C) kilometer = 0.621371192*6371.004*Arccos(C) mile = 3958.758349716768*Arccos(C) mile
在實際應用當中,一般是通過一個個體的郵政編碼來查找該郵政編碼對應的地區中心的經緯度,然 後再根據這些經緯度來計算彼此的距離,從而估算出某些群體之間的大致距離范圍(比如酒店旅客的分布范圍-各個旅客的郵政編碼對應的經緯度和酒店的經緯度所 計算的距離范圍-等等),所以,通過郵政編碼查詢經緯度這樣一個資料庫是一個很有用的資源。
附:C#代碼:
private const double EARTH_RADIUS = 6378.137;//地球半徑
private static double rad(double d)
{
return d * Math.PI / 180.0;
}
public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
double radLat1 = rad(lat1);
double radLat2 = rad(lat2);
double a = radLat1 - radLat2;
double b = rad(lng1) - rad(lng2);
double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +
Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));
s = s * EARTH_RADIUS;
s = Math.Round(s * 10000) / 10000;
return s;
}
經緯度是經度與緯度的合稱組成一個坐標系統。稱為地理坐標系統,它是一種利用三度空間的球面來定義地球上的空間的球面坐標系統,能夠標示地球上的任何一個位置。
經緯度換算成米:
緯度分為60分,每一分再分為60秒以及秒的小數。
緯度線投射在圖上看似水平的平行線,但實際上是不同半徑的圓。有相同特定緯度的所有位置都在同一個緯線上。
赤道的緯度為0°,將行星平分為南半球和北半球。
緯度是指某點與地球球心的連線和地球赤道面所成的線面角,其數值在0至90度之間。位於赤道以北
點的緯度叫北緯,記為N,位於赤道以南的點的緯度稱南緯,記為S。
緯度數值在0至30度之間的地區稱為低緯地區,緯度數值在30至60度之間的地區稱為中緯地區,緯度數值在60至90度之間的地區稱為高緯地區。
赤道、南回歸線、北回歸線、南極圈和北極圈是特殊的緯線。
緯度1秒的長度:
地球的子午線總長度大約40008km。平均:
緯度1度 = 大約111km
緯度1分 = 大約1.85km
緯度1秒 = 大約30.9m
2. 地理中已知兩點經緯度求距離怎麼算
地理對於文科生來說算是文科中理科一般的存在,那是不是有什麼簡單易懂的解題技巧來幫助文科生們學好地理呢,地理中已知兩點經緯度求距離難到了很多同學,下面我為大家整理了相關信息,以供參考。 1 如何計算已知經緯度兩點間的距離 設地球半徑為R,地心為0,球面上兩點A、B的球面坐標為A(α1,β1),B(α2,β2),α1、α2∈[-π,π],β1、β2∈[-π/2,π/2],則AB=R•arccos[cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2],可以利用勾股定理與正弦定理則可求出AB兩點間的直線距離。 一般來說,同一經線上,緯度相差一度,距離相差111KM;同一緯線上,經度相差一度,距離相差111KM乘以cos該緯度數.赤道上,經度相差一度,距離相差111KM;不在同一緯線或同一經線上的就另當別論,具體問題具體分析。 1 已知兩點經緯度計算距離的具體例子 球是一個近乎標準的橢球體,它的赤道半徑為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=R*Arccos(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=R*Arccos(C)*Pi/180 以上通過簡單的三角變換就可以推出。 如果三角函數的輸入和輸出都採用弧度值,那麼公式還可以寫作: C=sin(LatA*Pi/180)*sin(LatB*Pi/180)+cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180) Distance=R*Arccos(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=R*Arccos(C)=6371.004*Arccos(C)kilometer=0.621371192*6371.004*Arccos(C)mile=3958.758349716768*Arccos(C)mile3. 已知兩個點的坐標,怎麼求兩點之間的距離
可以使用兩點間距離公式來求:
設兩個點A、B以及坐標分別為(x1,y1)、(x2,y2),則A和B兩點之間的距離為:
同時,若已知直線公式和其中一個點,並且給定了距離,可以反求另一個點的坐標。
4. 坐標距離公式
坐標距離公式是d=√(x2-x1)2+(y2-y1)2。坐標是數學名詞。是指為確定天球上某一點的位置,在天球上建立的球面坐標系。有兩個基本要素:基本平面;主點,又稱原點。
數學上坐標的實質是有序數對,平面概念用來表示某個點的絕對位置,延伸到游戲中用來表示游戲事物的平面位置。地理學上定義的坐標,即地理坐標系,是使用三維球面來定義地球表面位置,以實現通過經緯度對地球表面點位引用的坐標系。
5. 兩個經緯度算距離公式及方法
經緯度是經度與緯度的合稱組成一個坐標系統,它是一種利用三度空間的球面來定義地球上的空間的球面坐標系統,能夠標示地球上的任何一個位置。怎麼計算兩個經緯度之間的距離,有什麼計算公式或者方法技巧?
在地球上任何地點,只要有隻表,有根竹竿,一根捲尺,就可知道當地經緯度。但表必須與該國標准時校對。
方法如下: 1、先算兩分日
比如在中國某地,桿影最短時是中午13點20分,且桿長與影長之比為1,則可知該地是北緯45°(tgα=1),東經100°(從120°里1小時減15°,4分鍾減1°)桿長與影長之比需查表求α,這里用了特殊角。
2、再算兩至日經度的演算法不變 緯度在北半球冬至α+23.5°,夏至α-23.5°在任意一天加減修正值即可。
3、修正值演算法友磨:就是距兩分或兩至日的天數差乘以94/365. 比如2013年2月17日,2013年3月22日春分差33天,即太陽直射點在南緯
33×94/365=8.5°
所以今天正午時得到的緯度是(arctgα+8.5)°
tgα= 桿長/影長
1.已知地球上兩點的經度、緯度:(X1,Y1), (X2,Y2),其中X1,X2為經度,Y1,Y2為緯度;
視計算程序需要轉化為弧度(*3.1415926/180)
地球半徑為R=6371.0 km
則兩點距離d=R*arcos[cos(Y1)*cos(Y2)*cos(X1-X2)+sin(Y1)*sin(Y2)]
2.在地球上同一條經線上緯度相差一度,實際距離是111公里;在赤道經度相差一度,實際距離是111公里,在其他的緯線上,經度每相差一度,實際距離是111*經度數*cos經度數,例如在北緯30度,經度相差5度,實際距離是:111*5*cos30度。
地球赤道上環繞地球一周走一圈共 40075.04公里
而一圈分成360°
而每1°(度)有槐御60'
每一度一秒在赤道上的長度計算如下:
40075.04km/360°=111.31955km
111.31955km/60'=1.8553258km=1855.3m
而每一分又有60秒
每一秒就代表 1855.3m/60=30.92m
任意兩點距離計算公式為
d=111.12cos{1/[sinΦAsinΦB十 cosΦAcosΦBcos(λB-λA)]}
其中:A點經度,緯度分別為λA和ΦA
B點的經度、緯度分別為λB和ΦB,d為距離
地球上所有地方的緯度一分的距離都是約等於1.86公里,也就鉛告岩是一度等於1.86*60=111公里。
不同緯度處的經度線上的一分的實際長度是不同的,219國道基本在東經29-38度之間,29度處的一分經線長約1.63公里,38度處的一分經線長約1.47公里。
6. 如何利用地理坐標求兩地距離
同緯度不同經度 (赤道除外)h X 111 X COSD=G (h=兩地經度差 D=當地的地理緯度 G=實際距離) 跨緯度的需要構造個三角 比如說AB兩點不同經緯度(A經B緯) 那就先算出與A點共線的那條緯度B'的距離,在算A到B'的距離,在用勾股定理就可以得出簡單的說可用以下通用公式:地球上任兩點間距離公式:地球上任兩點,其經度分別為A1、A2(E正,W負),緯度分別為B1、B2(N正,S負).令A0=(A1-A2)÷2,B0=(BI-B2)÷2 f=√sinB0×sinB0+cosB1×cosB2×sinA0×sinA0 則 1、兩點間空間直線距離=2fR 2、兩點間最小球面距離=arcsinf÷90°×∏R(角度) 3、兩點間最小球面距離=arcsinf×2R(弧度) 說明:E、W、N、S=東西南北;R=地球半徑;√=根號;∏=圓周率.
7. 坐標系中兩點之間的距離公式是什麼
距離公式是:根號內(y2-y1)²+(x2-x1)²。
比方說,兩點的坐標是(0,-3) (1,-4)。
則距離是√(-4-(-3))²+(1-0)²=√2(根號2)。
兩點間距離公式推論:
已知AB兩點坐標為A(x1,y1),B(x2,y2)。
過A做一直線與X軸平行,過B做一直線與Y軸平行,兩直線交點為C。
則AC垂直於BC(因為X軸垂直於Y軸)。
則三角形ACB為直角三角形。
由勾股定理得:
AB^2=AC^2+BC^2。
故AB=根號下AC^2+BC^2,即兩點間距離公式。
點到直線的距離:
直線Ax+By+C=0 坐標(x0,y0)那麼這點到這直線的距離就為:d=│Ax0+By0+C│/根號(A^2+B^2)。
公式描述:
公式中的直線方程為Ax+By+C=0,點P的坐標為(x0,y0)。
連接直線外一點與直線上各點的所有線段中,垂線段最短,這條垂線段的長度,叫做點到直線的距離。