亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#通過經緯度計算2個點之間距離的實現代碼

2020-01-24 02:34:00
字體:
來源:轉載
供稿:網友

根據兩點經緯度計算距離

這些經緯線是怎樣定出來的呢?地球是在不停地繞地軸旋轉(地軸是一根通過地球南北兩極和地球中心的假想線),在地球中腰畫一個與地軸垂直的大圓圈,使圈上的每一點都和南北兩極的距離相等,這個圓圈就叫作“赤道”。在赤道的南北兩邊,畫出許多和赤道平行的圓圈,就是“緯圈”;構成這些圓圈的線段,叫做緯線。我們把赤道定為緯度零度,向南向北各為90度,在赤道以南的叫南緯,在赤道以北的叫北緯。

北極就是北緯90度,南極就是南緯90度。緯度的高低也標志著氣候的冷熱,如赤道和低緯度地地區無冬,兩極和高緯度地區無夏,中緯度地區四季分明。

其次,從北極點到南極點,可以畫出許多南北方向的與地球赤道垂直的大圓圈,這叫作“經圈”;構成這些圓圈的線段,就叫經線。公元1884平面坐標圖年,國際上規定以通過英國倫敦近郊的格林尼治天文臺的經線作為計算經度的起點,即經度零度零分零秒,也稱“本初子午線”。在它東面的為東經,共180度;

在它西面的為西經,共180度。因為地球是圓的,所以東經180度和西經180度的經線是同一條經線。各國公定180度經線為“國際日期變更線”。為了避免同一地區使用兩個不同的日期,國際日期變線在遇陸地時略有偏離。
 
  每一經度和緯度還可以再細分為60分,每一分再分為60秒以及秒的小數。利用經緯線,我們就可以確定地球上每一個地方的具體位置,并且把它在地圖或地球儀上表示出來。例如問北京的經緯度是多少?我們很容易從地圖上查出來是東經116度24分,北緯39度54分。在大海中航行的船只,只要把所在地的經度測
出來,就可以確定船在海洋中的位置和前進方向。 緯度共有90度。赤道為0度,向兩極排列,圈子越小,度數越大。

橫線是緯度,豎線是經度。

當然可以計算,四元二次方程。

經度和緯度都是一種角度。經度是個兩面角,是兩個經線平面的夾角。因所有經線都是一樣長,為了度量經度選取一個起點面,經1884年國際會議協商,決定以通過英國倫敦近郊、泰晤士河南岸的格林尼治皇家天文臺(舊址)的一臺主要子午儀十字絲的那條經線為起始經線,稱為本初子午線。本初子午線平面是起點面,終點面是本地經線平面。某一點的經度,就是該點所在的經線平面與本初子午線平面間的夾角。在赤道上度量,自本初子午線平面作為起點面,分別往東往西度量,往東量值稱為東經度,往西量值稱為西經度。由此可見,一地的經度是該地對于本初子午線的方向和角距離。本初子午線是0°經度,東經度的最
大值為180°,西經度的最大值為180°,東、西經180°經線是同一根經線,因此不分東經或西經,而統稱180°經線。
 
  緯度是個線面角。起點面是赤道平面,線是本地的地面法線。所謂法線,即垂直于參考扁球體表面的線。

某地的緯度就是該地的法線與赤道平面之間的夾角。緯度在本地經線上度量,由赤道向南、北度量,向北量值稱為北緯度,向南量值稱為南緯度。由此可見,一地的緯度是該地對于赤道的方向和角距離。赤道是0°緯線,北緯度的最大值為90°,即北極點;南緯度的最大值為90°,即南極點。經緯度互換

度(DDD):E 108.90593度    N 34.21630度

如何將度(DDD):: 108.90593度換算成度分秒(DMS)東經E 108度54分22.2秒?轉換方法是將108.90593整數位不變取108(度),用0.90593*60=54.3558,取整數位 54(分),0.3558*60=21.348再取整數位21(秒),故轉化為108度54分21秒.

同樣將度分秒(DMS):東經E 108度54分22.2秒 換算成度(DDD)的方法如下:108度54分22.2秒=108+(54/60)+(22.2/3600)=108.90616度

因為計算時小數位保留的原因,導致正反計算存在一定誤差,但誤差影響不是很大。1秒的誤差就是幾米的樣子。GPS車友可以用上述方法換算成自己需要的單位坐標。

經緯度換算成米

緯度分為60分,每一分再分為60秒以及秒的小數。

緯度線投射在圖上看似水平的平行線,但實際上是不同半徑的圓。有相同特定緯度的所有位置都在同一個緯線上。 赤道的緯度為0°,將行星平分為南半球和北半球。 緯度是指某點與地球球心的連線和地球赤道面所成的線面角,其數值在0至90度之間。位于赤道以北的點的緯度叫北緯,記為N,位于赤道以南的點的緯度稱南緯,記為S。

緯度數值在0至30度之間的地區稱為低緯地區,緯度數值在30至60度之間的地區稱為中緯地區,緯度數值在60至90度之間的地區稱為高緯地區。

赤道、南回歸線、北回歸線、南極圈和北極圈是特殊的緯線。

緯度1秒的長度

地球的子午線總長度大約40008km。平均:
緯度1度 = 大約111km
緯度1分 = 大約1.85km
緯度1秒 = 大約30.9m

WGS84坐標系統下(通常我們采用的GPS內的坐標系統)
如果是中國常用的WGS1984的經緯度坐標,1秒相當于33米。具體如下:
經度1度=85.39km
經度1分 = 1.42km
經度1秒 = 23.6m

根據地球上任意兩點的經緯度計算兩點間的距離

地球是一個近乎標準的橢球體,它的赤道半徑為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;
}

原理:地球赤道上環繞地球一周走一圈共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為距離。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黄色一区二区在线| 日韩一区二区三区在线播放| 九九热这里只有精品免费看| 国产精品91久久| 亚洲精品永久免费| 国产精品美女久久久免费| 欧美美女18p| 亚洲精品自拍偷拍| 亚洲人成电影在线观看天堂色| 91国产高清在线| 91精品视频免费| 亚洲成人精品视频| 国产成人在线播放| 欧洲一区二区视频| 奇米一区二区三区四区久久| 欧美专区在线观看| 国产剧情日韩欧美| 色哟哟网站入口亚洲精品| 亚洲最大在线视频| 国产视频亚洲精品| 57pao成人永久免费视频| 国产精品久久久久久久久免费| 国产一区二区三区网站| 欧美激情xxxxx| 欧美黑人又粗大| 亚洲欧美国产精品久久久久久久| 亚洲电影第1页| 91久久久国产精品| 国产精品扒开腿做爽爽爽男男| 国产99久久精品一区二区 夜夜躁日日躁| 奇米4444一区二区三区| 精品自拍视频在线观看| 在线观看日韩视频| 国产一区二区三区四区福利| 九九热精品在线| 中文字幕在线视频日韩| 欧美日韩国产一区中文午夜| 久久影视电视剧免费网站| 国产精品18久久久久久首页狼| 国产综合在线观看视频| 日韩大片在线观看视频| 91亚洲va在线va天堂va国| 亚洲一区中文字幕在线观看| 欧美尺度大的性做爰视频| 97精品国产97久久久久久| 久久久免费精品视频| 动漫精品一区二区| 国产成人精品久久| 91国偷自产一区二区三区的观看方式| 国产精品偷伦免费视频观看的| 欧美精品18videos性欧美| 欧美性色视频在线| 国产精品自产拍在线观看| 欧美在线一级va免费观看| 欧美精品在线观看91| 性欧美长视频免费观看不卡| 亚洲第一免费播放区| 久久久久五月天| 久久久久国产一区二区三区| 国产精品久久久久久久久久新婚| 国产一区二区激情| 欧美理论电影在线播放| 欧美巨猛xxxx猛交黑人97人| 欧美孕妇孕交黑巨大网站| 久久视频在线观看免费| 亚洲精品福利在线| 国产精品va在线播放我和闺蜜| 不卡av电影在线观看| 欧美一性一乱一交一视频| 色综合伊人色综合网站| 色婷婷综合久久久久中文字幕1| 欧美一级片免费在线| 久久久久国产一区二区三区| 国产免费久久av| 欧美日韩国产精品一区二区不卡中文| 日韩美女在线播放| 欧美极品美女视频网站在线观看免费| 国产91免费观看| 欧美视频中文字幕在线| yellow中文字幕久久| 国产精品视频xxxx| 国产精品一区二区av影院萌芽| 亚洲人成亚洲人成在线观看| 日韩电影网在线| 日韩av大片免费看| 日韩免费黄色av| 久久精品成人欧美大片古装| 欧美日韩午夜视频在线观看| 一区二区欧美亚洲| 亚洲欧洲黄色网| 国内免费精品永久在线视频| 97在线免费观看视频| 国产激情综合五月久久| 日韩一区在线视频| 亚洲国产成人爱av在线播放| 亚洲精品综合精品自拍| 91精品国产91久久| 国内精品久久久久久久| 国产亚洲精品一区二区| 韩国一区二区电影| 亚洲精品资源在线| 日韩av日韩在线观看| 成人激情视频免费在线| 人人爽久久涩噜噜噜网站| 91夜夜揉人人捏人人添红杏| 日韩av一区在线| 欧美日韩国产色| 欧美激情欧美狂野欧美精品| 91日韩在线播放| 欧美成人高清视频| 欧美日韩美女视频| 98精品国产高清在线xxxx天堂| 日韩高清不卡av| 久久综合免费视频影院| 伊人久久大香线蕉av一区二区| 国产精品jizz在线观看麻豆| 日韩在线观看成人| 亚洲a在线观看| 欧美精品在线免费观看| 国产亚洲精品一区二区| 91豆花精品一区| 欧美国产日韩在线| 精品久久久久久久久久| 日韩一区二区三区国产| 92国产精品久久久久首页| 欧美一级电影在线| 精品亚洲男同gayvideo网站| 欧美成人黑人xx视频免费观看| 97碰碰碰免费色视频| 欧美视频免费在线| 欧美日韩国产影院| 亚洲影院污污.| 自拍偷拍亚洲在线| 成人h视频在线观看播放| 亚洲成人av片| 国产精品久久久久久久久免费看| 狠狠躁18三区二区一区| 欧美激情精品久久久久久免费印度| 久久久伊人欧美| 日韩美女免费线视频| 久久久精品2019中文字幕神马| 国产日韩欧美夫妻视频在线观看| 成人国产亚洲精品a区天堂华泰| 91亚洲va在线va天堂va国| 精品一区二区亚洲| 日韩精品欧美国产精品忘忧草| 51视频国产精品一区二区| 国产精品福利在线观看网址| 国产丝袜高跟一区| 精品中文字幕视频| 国产精品视频在线观看| 久久久久久国产三级电影| 久久99视频精品| 5566成人精品视频免费| 欧美国产日韩一区二区在线观看| 91精品久久久久久久久久| 欧美日本在线视频中文字字幕| 亚洲视频999| 在线成人激情黄色| 成人国产在线激情| 日韩中文在线不卡| 亚洲欧美第一页| 国产一区二区在线免费视频| 亚洲第一国产精品|