获得4 LatLon的最小边界

时间:2015-01-22 06:42:48

标签: javascript geometry bounds

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

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

enter image description here

在上面的图像中,我想要给出4 lat lat的矩形角的lat lon,如左侧所示。

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

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

1 个答案:

答案 0 :(得分:0)

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

算法:

  • 计算图像中1,3和1,2纬度之间的距离。这会给你2个距离。
  • 找到距离更远的坐标。 (在这里我们可以考虑1和3之间的距离更大。)
  • 找出那些被认为是坐标之间的方位
  • 将任何坐标视为原点。 (我选择3的坐标作为我案例的原点)。
  • 沿着原点旋转所有点1,2,3,4,旋转角度为轴承。旋转使得所考虑的点(此处为1和3)与x轴平行。
  • 现在你得到4个新坐标。从这4个坐标中找出最小和最大x和y(将它们视为minX,minY,maxX,maxY)。
  • (minX,minY)为您提供矩形的左上角坐标,(maxX,maxY)为您提供矩形的右下角坐标。使用此信息,您可以找到另外两个坐标。
  • 现在沿着相同的原点旋转这4个新坐标,但旋转角度为-bearing。这些是图像中虚线矩形的顶点。

注意:这可能不完美,因为我没有考虑地球半径以及与纬度,经度相关的其他复杂情况。但在我的情况下,lat lon彼此非常接近,我对准确性不感兴趣。

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