指向大圓段距離
回答
這是交叉軌道距離described here
dxt = asin(sin(δ13) ⋅ sin(θ13−θ12)) ⋅ R
where
δ13 is (angular) distance from start point to third point
θ13 is (initial) bearing from start point to third point
θ12 is (initial) bearing from start point to end point
R is the earth’s radius
可以計算出所需的距離,並使用公式從給定的頁面軸承
distance
a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
c = 2 ⋅ atan2(√a, √(1−a))
d = R ⋅ c
where
φ is latitude, λ is longitude, R is earth’s radius (mean radius = 6,371km);
bearing
θ = atan2(sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ)
where
φ1,λ1 is the start point, φ2,λ2 the end point (Δλ is the difference in longitude)
注意,角度需要採用弧度傳遞到三角函數
因此對不起,我將刪除我的評論。 – Blindman67
球形至2D笛卡爾
如果距離不是太遠,周圍沒有極奇點你既可以線段和線路從你的觀點,並垂直於你的段球面座標的發光轉換(如果它們還沒有)並且使用2個角度作爲笛卡爾空間(忽略半徑)。
- 計算交點
- 轉換回點和交叉點之間的球面
計算弧長
很難說,如果你使用的球或WGS84還是什麼....
笛卡爾3D
您可以將圓弧段作爲3D線處理,並在發現相交時將其投影到曲面上。事情是這樣的:在3D笛卡爾
項目回地表
對於球面
- 行查找與正常的交點就是這個簡單的投影意味着將矢量長度更改爲
R
(如果球體以(0,0,0)
爲中心)。 2分爲球形表面也是簡單之間
計算弧長只是計算相交點和之間的角度...
ang = acos(dot(intersection,point)); // [radians]
,並轉換爲弧長
d = ang*R; // [same Units as R]
- 行查找與正常的交點就是這個簡單的投影意味着將矢量長度更改爲
我正在使用WGS84。 – user2033412
@ user2033412更復雜一點......投影迭代完成以提高精度...您只需搜索'lat'直到它適合'x,y,z'開始球面投影,然後更改'lat '以最小化距離... – Spektre
@ user2033412請參閱[如何將球面速度座標轉換爲笛卡爾](https://stackoverflow.com/a/41161714/2521214)以及鏈接的答案,以獲得一些其他想法... – Spektre
- 1. 奇怪的大圓距離計算
- 2. 用SQLite計算大圓距離
- 3. 大圓距離加上高度變化
- 4. 橢圓測量距離
- 5. 圓周距離問題
- 6. 圓分離距離 - 最近鄰問題
- 7. 距離點到線大圓功能不能正常工作。
- 8. Voronoi圖使用自定義(大圓)距離
- 9. Python - SqlAlchemy:按大圓距離過濾查詢?
- 10. 使用lat/long SRID的PostGIS中的真實(大圓圈)距離?
- 11. 如何測試正確的大圓距離計算?
- 12. 大圓距離的赤道平面的NAN值和計算角
- 13. 如何在T-SQL中使用大圓距離計算
- 14. 如何圓一個GeoDjango內置距離
- 15. 最大。藍牙距離
- 16. Three.js FogExp2與最大距離?
- 17. LINQ的最大距離表
- 18. 在距離10處的圓圈內畫一個圓圈
- 19. 距離某一點的線段距離上的點
- 20. 在PostgreSQL中計算點和圓之間的距離,用於圓半徑和距離的單位是什麼?
- 21. 距離Cell塔的距離
- 22. 如何通過指定位置來放大距離?
- 23. 指向大寫字母輸入字段
- 24. 指向圓的指針的數組struct
- 25. 如何找到距離線段指定距離的標題上的第一個點?
- 26. 如何計算沿着大圓的給定距離的經度和緯度?
- 27. 將行對齊到指定的距離
- 28. 活動的指標和CLLocation距離
- 29. 傳距離矩陣到k-指sklearn
- 30. 位置指針和距離計算
我想你可能有更多的運氣與此有關mathematics.stackexchange –
我投票關閉這一問題作爲題外話,因爲它是關於[math.se]而不是編程或軟件開發。 – Pang