0
我想要得到兩個點A和B,它們各自在中心點C周圍5km的距離和垂直線。 因此,點A和B創建「邊框」邊長10公里,C在這個盒子的正中央。 這是我的代碼:計算Java中緯度和經度座標的「框」
//Distance is 5 kilometers
float distance = 5;
float latCenter = locationInfo.lastLat;
float lngCenter = locationInfo.lastLong;
// Calculate corner point distance in lat and long
float latDelta = distance/110.54f;
float longDelta = distance/(111.320f(float)Math.cos((double)latCenter));
// Calculate coordinates of the corner points
float latA = lat - latDelta;
float longA = lng - longDelta;
float latB = lat + latDelta;
float longB = lng + longDelta;
我知道這些都是近似值,但與1公里〜誤差幅度接近在我的情況是好的。 垂直距離很好(10.06km),但水平距離只有6km而不是10km。
我的公式有什麼問題?我猜它有一些非常簡單的數學錯誤,但我無法找到它。我需要一個非常簡單和快速的代碼,所以我根據我對這個StackOverflow的答案算了一筆賬:Simple calculations for working with lat/lon + km distance?
這是錯誤,它現在工作完美!感謝您的快速幫助! –
不客氣:) – 2013-10-10 17:32:44