【问题标题】:Calculating the union of 2 longitudal intervals (that may wrap around 180 degrees)计算 2 个纵向间隔的并集(可能环绕 180 度)
【发布时间】:2011-06-05 02:28:42
【问题描述】:

故事:

我有一个LatLongBounds 类,它表示地球表面上的一个区域,按纬度间隔(以南北为界 - 对这个问题不重要)和纵向间隔(以东和西为界;两者都归一化范围 [-180, 180] - 负数表示西风方向)。

为了能够表示跨越 180 度子午线的区域,可以将西的值设置为大于东(例如,范围西 = 170,东 = -170 将跨越所述子午线)。实际上,纵向间隔可能会以 180 度(或等效的 -180 度)环绕。

我的问题:

有人对我如何计算可能以 180 度环绕的两个纵向间隔的最小并集有任何建议吗?

谢谢。

【问题讨论】:

    标签: union geospatial angle intervals


    【解决方案1】:

    问题是您要考虑您的“区域”的哪个“方向”。对于您的示例(170E,170W),如果您认为范围在 a 和 b 之间,这是一个较小的区域,但如果您考虑 b 和 a 之间的区域,则这是一个较大的区域。坐标是否总是以相同的顺序给出?

    “最小联合”是指intersection吗?

    在进行这些计算时,您可能会考虑更改坐标系,将其中一个半球中的所有坐标添加 180 度,并始终沿同一方向“行进”。

    【讨论】:

    • 因为有效范围在 180/-180 处换行,所以两个区间的并集可以有两种解决方案。例如区间 [-180,-170] 和 [170, 180] 的并集可以是 [-180, 180] 或 [170, -170];我将后者称为最低工会。间隔总是被描述为 [西部边界,东部边界] 以允许我表示跨越日期变更线(180 度子午线)的间隔。
    • 我认为这是一个术语问题...您能否详细说明这些计算的应用,这将有助于解决问题。
    • 我基本上是在尝试从 Google Maps API 实现 GLatLngBounds 的一个版本。在我的特定用例中,我试图查看由可能跨越 180 度子午线的 2 个或更多区域界定的地球区域。非最小联合通常最终会缩小以查看整个地球,即使实际覆盖的区域可能非常小。这绝对是一个特例,所以现在我只使用非最小联合计算。
    猜你喜欢
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    相关资源
    最近更新 更多