3

我有一个边界列表(多边形)和一个由纬度和经度表示的方式列表。我想知道一种方式是否在多边形内。我在 perl 中执行此操作,但找不到任何有用的计算方法。Math::Polygon (::Calc) 具有有趣的功能,但不适用于 lat/lon,仅适用于 x/y。

所以我正在考虑让它更容易并为每个多边形生成一个边界框,这样我就更容易检查一个点是否在边界框内。

有谁知道算法如何获得边界框。一个伪代码就足够了,所以我可以用 perl 对其进行编码。

在不将多边形转换为边界框的情况下检查是否在多边形内会更好,但我无法在网上找到任何有用的东西。有一些用于简单的基于 2d x/y 的坐标系,但不适用于球形纬度/经度。

4

1 回答 1

3

首先,将每个多边形线段的起点和终点放在一个数组中。然后遍历数组以找到 MinX、MinY、MaxX 和 MaxY。然后点 (MinX, MinY) 是你盒子的左下角, (MaxX, MaxY) 是右上角。

于 2013-01-31T21:53:18.667 回答