2013-02-20 113 views
0

我遇到了房地產面臨的問題。檢查座標是否在區域內

我有一個真實世界的地址,我將轉換爲地球座標(如「倫敦眼」到「-0.119543; 51.503324」)。

我還在我要搜索的範圍內找到了一個周邊或區域(例如「10」是「10公里」)。

現在我得到了一堆座標(在地球上是完全隨機的),我想檢查當前座標是否在倫敦眼座標的10公里內。

有沒有解決這個問題的方法,或者我甚至可以面對x-y-problem

+0

你可以使用畢達哥拉斯來確定兩點之間的距離 - 是你問的所有問題?還是你要求一個快速的方法來做到這一點? (你有幾百萬點檢查?)或者你是否需要在座標系之間轉換? – 2013-02-20 13:08:01

+0

@MthetheWWatson這不是關於路由或任何事情,我只是想「在我的中心點周圍繪製一個大小爲n(例如:10公里)的圓圈,並檢查我檢查的任何其他點是否在該圓圈內」 – SeToY 2013-02-20 13:11:05

回答

1

您可以使用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以內的點。

+0

這有助於我很多,謝謝。我現在只是測量點之間的距離,並把它們視爲理所當然。 – SeToY 2013-02-20 14:44:30

0

這個問題有一個衆所周知的解決方案。 Haversine_formula

我認爲你也可以搜索相同的C#代碼。希望能幫助到你。