2013-01-31 92 views
3

我有一個邊界(多邊形)列表和所有由緯度和經度表示的方式列表。我想知道一個方法是否在多邊形內。 我在Perl中這樣做,但無法找到任何有用的計算。 Math :: Polygon(:: Calc)具有有趣的功能,但不適用於僅用於x/y的經緯度。從緯度/經度多邊形獲取邊界框

所以即時考慮使它更容易,並生成每個多邊形的邊界框,因此我更容易檢查一個方法的一個點是否在邊界框內。

有誰知道算法看起來像如何獲得邊界框。一個僞代碼就足夠了,所以我可以在perl中編寫它。

如果不將多邊形轉換爲邊界框,檢查是否在多邊形內會更好,但我無法找到網上有用的東西。有一些簡單的基於2d x/y的座標系,但不適用於球形緯度/經度。

回答

3

首先,將每個多邊形的線段的起點和終點放置在一個數組中。然後遍歷數組以找到MinX,MinY,MaxX和MaxY。然後點(MinX,MinY)是您的框的左下角,並且(MaxX,MaxY)是右上角。

+0

容易心疼,謝謝。 – NovumCoder

+7

雖然多邊形穿越180°不連續點時要小心。那麼上面定義的邊界框可能不是你所期望的(它將跨越幾乎整個地球,經度方面)。波蘭人也有類似的問題。 – letmaik