我有一个边界列表(多边形)和一系列由纬度和经度代表的方式。我想知道一个方法是否在多边形内。 我在perl中这样做,但无法找到任何有用的计算。 Math :: Polygon(:: Calc)具有有趣的功能,但不适用于x / y的lat / lon。
因此,我正在考虑让它更容易并生成每个多边形的边界框,因此我更容易检查一个方向的某个点是否在边界框内。
有谁知道算法是如何获得边界框的。一个伪代码就够了,所以我可以在perl中编写代码。
检查是否在多边形内部而不将多边形转换为边界框会更好,但我无法在网上找到任何有用的东西。有一些用于简单的基于2d x / y的坐标系,但不适用于球形lat / lon。
答案 0 :(得分:3)
首先,将每个多边形线段的起点和终点放在一个数组中。然后迭代数组以找到MinX,MinY,MaxX和MaxY。然后点(MinX,MinY)是框的左下角,(MaxX,MaxY)是右上角。