【问题标题】:Get Bounding Box from a lat/lon polygon从纬度/经度多边形获取边界框
【发布时间】:2013-01-16 03:26:14
【问题描述】:

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

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

有谁知道获取边界框的算法是什么样子的。一个伪代码就足够了,所以我可以在 perl 中编写代码。

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

【问题讨论】:

    标签: polygon latitude-longitude contains point


    【解决方案1】:

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

    【讨论】:

    • 当你的多边形穿过 180° 间断时要小心。那么上面定义的边界框可能不是您所期望的(它将几乎跨越整个地球,经度方面)。波兰人也有类似的问题。
    猜你喜欢
    • 2014-08-29
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多