因?yàn)橛行枨笙ィ谥酪稽c(diǎn)經(jīng)緯度和距離的情況下,需要知道另一點(diǎn)的經(jīng)緯度嘿架。
之前在網(wǎng)上也有查找瓶珊,也有不少的案例,但是多數(shù)都是語焉不詳耸彪,看不太明白伞芹。后來自己整理和重新再思考了下,這里給出一個(gè)自認(rèn)為說得還算比較簡明扼要的版本蝉娜。
話不多說唱较,具體如下:
假設(shè)方位角是α, 那從點(diǎn)1到點(diǎn)2的平移距離分別如下所示d*sinα召川, d*cosα南缓。 這里正北為0度∮牛基中點(diǎn)1經(jīng)緯度(long1, lat1)和距離d是已知的汉形。 求點(diǎn)2的經(jīng)緯度(long2,lat2)
還有一個(gè)隱藏的信息纸镊,就是點(diǎn)1所在的緯度,其實(shí)也是一個(gè)有用的角度概疆,通過它可以知道當(dāng)前緯度的那個(gè)切面的半徑長度逗威,下圖紅線所示用arc表示。這里假設(shè)地球是近似球體岔冀,赤道圓的半徑是ARC凯旭,側(cè)從下圖中可以得出:
就是知道φ是當(dāng)前點(diǎn)1的緯度。則當(dāng)前的緯度的切面半徑 arc = ARC*cos(φ) 楣颠,其中φ其實(shí)就是當(dāng)前的方位的緯度值尽纽,即arc = ARC*cos(lat1)
這里還要再討論下地球半徑,其實(shí)地球是一個(gè)橢球體童漩。
極半徑 從地心到北極或南極的距離弄贿,大約3950英里(6356.9088千米)(兩極的差極小,可以忽略)矫膨。
赤道半徑 是從地心到赤道的距離差凹,大約3963英里(6377.830千米)。
如果只是做近似計(jì)算的侧馅,我們這里取平均距離危尿,平均半徑 大約3959英里(6371.393千米) 。這個(gè)數(shù)字是地心到地球表面所有各點(diǎn)距離的平均值馁痴。
這里取平均半徑那么ARC=6371.393*1000(米)
通過上面的知識鋪墊后谊娇, 計(jì)算就簡單化了,
【計(jì)算思路】
1. 計(jì)算第二點(diǎn)的經(jīng)度罗晕,就是 水平平移的距度(d*sinα)除以 當(dāng)前緯度切面周長(2π*arc)济欢,再每乘以360度) ,就知道了水平橫向平移了多少度小渊,再加上long1法褥,就是long2的值了。
?2. 計(jì)算第二點(diǎn)的緯度酬屉,比較簡單半等,就是, 垂直平移的距離d(d*cosα)除以 地球縱向周長,再乘上360度呐萨,就知道縱向平移了多少度杀饵,再加上lat1,就知道lat2的值了垛吗。
long2 = long1 + d*sinα/[ARC*cos(lat1)*2π/360]
lat2 = lat1 +d*cosα/ (ARC *2π/360)
BTW, 最后再啰嗦一句凹髓,如果你是要通過編程實(shí)現(xiàn)的,一定要注意所用編程語言中怯屉,三角函數(shù)的值用的是度數(shù)還是弧度蔚舀,不然也是得不到正確的結(jié)果的饵沧。