平面地图上的边界框VS球面,即直线与大圆距离

时间:2017-06-13 07:05:15

标签: gis geospatial postgis bounding-box great-circle

我正在设计一个应用程序,我必须判断fb视频或instagram照片等项目是在某个地区内还是来自特定地区,例如墨尔本。

所以到现在为止,我想找一些国家的边界​​盒子,例如:澳大利亚,墨尔本。

  • 我只是访问此网站http://boundingbox.klokantech.com/
  • 画一个包含墨尔本的矩形。
  • 要知道它的GeoJson: [[[144.5937418,-38.4338593],[145.5125288,-38.4338593],[145.5125288,-37.5112737],[144.5937418,-37.5112737],[144.5937418,-38.4338593]]]

但是,在读完大圆后,它说:

现在,我真的很困惑,直到现在我认为边界框是一个矩形,因此如果我知道对角线相反的点我可以绘制它并且它内部的任何点都将属于区域矩形所包含的。但是,对于弯曲的边界,该点可以存在于内部或外部。

  • 所以,在下图中你可以看到,我将永远确定点y,z将在墨尔本。
  • 但是,对于弯曲的边界框,它可能无法覆盖整个墨尔本,因此我无法确定点是否位于墨尔本内部。

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要区分框本身及其在平面上的表示。您可以阅读map projection以了解弯曲炉床上的直线为什么/如何在平面纸上表示为曲线。

现在,为了使您的功能正常工作,最重要的是保持一致并始终在所有数据之间使用相同的投影(或没有投影!)。你有一个未投影的lat-long边界框(坐标用度数表示)?很好,也可以在lat-long中获得积分。然后评估该点是否在内部。最简单的方法是使用像ST_WITHIN这样的postgis函数。然后由您决定是否显示,无论是拉长(直线)还是首先投影(曲线)。

为了让它更容易理解,想一个更简单的问题:30S以南的一个点是否平行?如果放在纸上,30S将是一条曲线,但如果你的纬度小于-30,你仍然可以知道你在它的南边。