知道 一個小數緯度,小數經度,速度(公里/小時),標題 如何找到的所述下一位置汽車在60秒後? 有沒有什麼算法可以做到這一點?找到下一個現在的位置是知道的緯度/經度/標題/速度
1
A
回答
7
這可能幫助:
distance_traveled = speed * time
然後,計算x和使用的標題爲角度(三角)速度y分量:
speed_x=distance_traveled * Math.Cos(heading/180*Math.PI)
speed_y=distance_traveled * Math.Sin(heading/180*Math.PI)
接下來,查看經/緯度如何映射到一些x/y座標的形式,添加speed_x和speed_y,並再次轉換爲緯度/經度。
這最後一個是一個棘手的,請看這裏:http://www.movable-type.co.uk/scripts/latlong.html
事實上,你會發現,文章內的一切!
1
我找到更精確的公式
此代碼爲我工作:
1.首先我們要算的距離(速度*時間)。
2.在我的程序中,我將距離轉換爲KM,因爲我也使用KM中的地球半徑。
const double radiusEarthKilometres = 6371.01f;
kmDistance = kmSpeed * (timer1.Interval/1000f)/3600f;
var distRatio = kmDistance/radiusEarthKilometres;
var distRatioSine = Math.Sin(distRatio);
var distRatioCosine = Math.Cos(distRatio);
var startLatRad = deg2rad(lat0);
var startLonRad = deg2rad(lon0);
var startLatCos = Math.Cos(startLatRad);
var startLatSin = Math.Sin(startLatRad);
var endLatRads = Math.Asin((startLatSin * distRatioCosine) + (startLatCos * distRatioSine * Math.Cos(angleRadHeading)));
var endLonRads = startLonRad
+ Math.Atan2(Math.Sin(angleRadHeading) * distRatioSine * startLatCos,
distRatioCosine - startLatSin * Math.Sin(endLatRads));
newLat = rad2deg(endLatRads);
newLong = rad2deg(endLonRads);
相關問題
- 1. 找到當前位置的經緯度
- 2. 由於緯度和經度,找到感興趣的是位置
- 3. 使用API查找已知位置的經度和緯度?
- 4. 在封閉位置找到用戶的緯度和經度
- 5. 找不到用戶的位置: - 緯度和經度在android
- 6. 限制位置的經度和緯度
- 7. NullPointerException經度和緯度上的位置
- 8. 經度緯度點的奇怪位置
- 9. JSON經度緯度最近的位置
- 10. 位置的經度和緯度
- 11. 是否有Java API來查找位置的經度和緯度?
- 12. 如何找到經度和緯度位置的平均值?
- 13. 獲得位置的經度和緯度在一個文件
- 14. 如何根據用戶輸入的經度和緯度找到一個位置?
- 15. 試圖找到原來的緯度經度緯度+ 3米
- 16. 如何找到緯度/經度/緯度點之間的距離?
- 17. 如何找到當前位置'緯度經度
- 18. 從已知位置確定預測的經度/緯度
- 19. 當前位置,經度和緯度
- 20. 位置(經度,緯度)返回0
- 21. 錯誤位置緯度/經度
- 22. 獲取位置(經度和緯度)
- 23. 用於查找位置數量的經度和緯度的JavaScript
- 24. 獲得一個位置的緯度和經度
- 25. 獲取上一個位置的經度和緯度
- 26. android經緯度位置查找器
- 27. 查找經度和緯度
- 28. 獲取當前位置的緯度和經度的問題
- 29. 查找當前位置的經度和緯度
- 30. 如何查找特定位置的經度和緯度?