我遇到了房地產面臨的問題。檢查座標是否在區域內
我有一個真實世界的地址,我將轉換爲地球座標(如「倫敦眼」到「-0.119543; 51.503324」)。
我還在我要搜索的範圍內找到了一個周邊或區域(例如「10」是「10公里」)。
現在我得到了一堆座標(在地球上是完全隨機的),我想檢查當前座標是否在倫敦眼座標的10公里內。
有沒有解決這個問題的方法,或者我甚至可以面對x-y-problem?
我遇到了房地產面臨的問題。檢查座標是否在區域內
我有一個真實世界的地址,我將轉換爲地球座標(如「倫敦眼」到「-0.119543; 51.503324」)。
我還在我要搜索的範圍內找到了一個周邊或區域(例如「10」是「10公里」)。
現在我得到了一堆座標(在地球上是完全隨機的),我想檢查當前座標是否在倫敦眼座標的10公里內。
有沒有解決這個問題的方法,或者我甚至可以面對x-y-problem?
您可以使用haversine公式來計算兩個點之間的距離:
http://www.stormconsultancy.co.uk/blog/development/code-snippets/the-haversine-formula-in-c-and-sql/
Nearest GPS coordinate based on distance from a given point
然而,對於速度,我認爲你需要計算最大/最小經度和緯度值(即倫敦眼周圍的一個正方形),因爲如果有很多點需要檢查,這將會快得多。然後在這個小的子集上(在你的方形內)使用Haversine公式來找到10km以內的點。
這有助於我很多,謝謝。我現在只是測量點之間的距離,並把它們視爲理所當然。 – SeToY 2013-02-20 14:44:30
看起來這可以幫助你: http://www.doogal.co.uk/dotnetcoords.php
它是基於http://www.jstott.me.uk/jcoord,這使得點之間的距離計算。不要拿我的話來說,也沒有用過。
這個問題有一個衆所周知的解決方案。 Haversine_formula
我認爲你也可以搜索相同的C#代碼。希望能幫助到你。
你可以使用畢達哥拉斯來確定兩點之間的距離 - 是你問的所有問題?還是你要求一個快速的方法來做到這一點? (你有幾百萬點檢查?)或者你是否需要在座標系之間轉換? – 2013-02-20 13:08:01
@MthetheWWatson這不是關於路由或任何事情,我只是想「在我的中心點周圍繪製一個大小爲n(例如:10公里)的圓圈,並檢查我檢查的任何其他點是否在該圓圈內」 – SeToY 2013-02-20 13:11:05