我想定的緯度和經度轉換按如下: -如何從給定的經度和緯度查找左下角和右上角的經緯度?
- 左下緯度
- 左下經度
- 右上緯度
- 右上經度
例如,我有一個緯度:29.0167和經度:77.3833。現在我怎樣才能將這些座標轉換爲左下緯度,左下經度,右上緯度和右上經度。
請任何人都可以幫助我。
我想定的緯度和經度轉換按如下: -如何從給定的經度和緯度查找左下角和右上角的經緯度?
例如,我有一個緯度:29.0167和經度:77.3833。現在我怎樣才能將這些座標轉換爲左下緯度,左下經度,右上緯度和右上經度。
請任何人都可以幫助我。
計算兩點之間的距離。如果距離很小(比如大約100公里),那麼通常可以使用平坦的地球近似。對於更遠的距離,您需要使用「大圓」距離。 AKA Haversine配方。你計算的這個距離是正方形的對角距離。看到這個網站你需要的所有公式:http://www.movable-type.co.uk/scripts/latlong.html
從左下角到右上角計算軸承。同樣,請參閱上面的站點以計算兩個經緯度點之間的軸承。
要得到右下角,您知道框的邊的距離是對角線距離除以2的平方根。這是從直角三角形幾何:x^2 + x^2 =斜邊。
根據上面計算的方位,加45度。你現在有一個範圍(D/sqrt(2))和一個到右下角的方位。使用上面的站點來計算緯度/經度的緯度/經度,用範圍和方位。
重複爲左上角減45度。
謝謝你的回答。 – 2013-03-26 08:48:10
我不確定我是否理解你正在嘗試做什麼,但是如果我這樣做,你可以使用Math.Floor和Math.Ceiling。他們給你第一個較小的整數,分別提供更多的數字。
float lon =77.38;
float lat = 29.01;
float loLat=Math.Floor(lat); //29
float upLat=Math.Ceiling(lat); //30
float loLon=Math.Floor(lat); //77
float upLon=Math.Ceiling(lat); //78
然後,您可以從這個計算所需的角落。
謝謝你的回答。這不會解決我的問題。 – 2013-03-22 10:44:36
你能指出爲什麼它不能解決它。我仍然不確定你想要得到什麼。也許提供一個精心設計的輸入和期望輸出的例子。 – floAr 2013-03-22 11:35:11
相對於什麼,到底是什麼? – 2013-03-22 09:00:16
我有一個API,我需要通過4個座標。鏈接:http://dev.virtualearth.net/REST/v1/Traffic/Incidents/37,-105,45,-94?即37,-105,45,-94。所以我怎麼能找到這個。 – 2013-03-22 09:02:05