2011-01-27 30 views
0

我搜索了很長時間,並沒有完全找到答案。有幾個接近,但似乎完全沒有回答我的問題!我想獲取一組座標,從中創建一個多邊形,並確定給定位置是否在該多邊形內。任何幫助將非常感激!我怎樣才能確定一個位置(拉特/長)是否在一個特定的多邊形內,並且在Android中都有一個給定緯度/經度的邊角?

+0

這不是一個簡單的問題。緯度/長點不在歐式空間中。你會像球面空間中的凸包公式那樣但不完全是這樣的 – Falmarri 2011-01-27 03:08:25

回答

0

好的 - 我剛剛發佈的答案的完整重寫(我希望沒有人讀過)。

構建多邊形的路徑,將其設置爲區域的路徑,並調用區域的contains()方法來測試點。

1

這裏http://alienryderflex.com/polygon你會發現一個非常聰明的算法和一些非常接近Java的C代碼來完成這項工作(euclidean approximation)。所以我只寫我自己的類,因爲:

  1. 的Android地區的不給你一個準確的數值。 如果它返回true,則要檢查的點位於多邊形中。到現在爲止還挺好。 但是,如果它返回false,它仍然可以在裏面。我不知道該方法應該如何稱爲,因爲它在大多數情況下基本沒用。

  2. 顯然你不能在Android中使用Java AWT Polygon類。

相關問題