获取 4 LatLon 的最小界限

Get Minimum bounds of 4 LatLon

我有 4 个经纬度位置。它们代表一个(旋转的)矩形区域。但由于一些计算错误,有时它们不是正确的矩形。

我想将它们转换成(旋转的)矩形区域。 有关更多说明,请参见图片

在上图中,我想要给定 4 lat lon 绘制的矩形角的经纬度,如左侧所示。

我尝试搜索但找不到任何解决方案。大多数解决方案都没有处理旋转矩形的情况。 我该如何解决这个问题?

注意:是否有任何库可以执行此操作,我正在使用 JavaScript 来实现。
注意:我不知道我的问题是否与数学更相关。

注意:这是我使用的特定解决方案。它可能并不完美,但它确实有效。

算法:

  • 根据图像计算 1, 3 和 1, 2 lat lon 之间的距离。这会给你 2 个距离。
  • 找出距离较大的坐标。 (这里让我们考虑1和3之间的距离更大。)
  • 找出所考虑的坐标之间的方位
  • 以任意坐标为原点。 (我选择坐标 3 作为我案例的原点)。
  • 以旋转角度为方位角沿原点旋转所有点1,2,3,4。这里旋转使考虑的点(这里是 1 和 3)平行于 x 轴。
  • 现在你得到了4个新坐标。从这 4 个坐标中找到最小和最大 x 和 y(将它们视为 minX、minY、maxX、maxY)。
  • (minX, minY) 给出了矩形的左上角坐标,(maxX, maxY) 给出了矩形的右下角坐标。使用此信息,您可以找到其他两个坐标。
  • 现在将这4个新坐标沿同一原点旋转,旋转角度为-方位角。这些是图像中虚线矩形的顶点。

注意:这可能并不完美,因为我没有考虑地球半径和其他与纬度、经度相关的复杂问题。但就我而言,经纬度彼此非常接近,我对准确性不感兴趣。

希望我们中的一些人觉得它有用。