1

我正在设计一个应用程序,我必须在其中判断像 fb 视频或 instagram 照片这样的项目是位于某个区域内还是来自特定区域,例如墨尔本。

所以到目前为止,当我想找到某个国家的边界​​框时,例如:澳大利亚,墨尔本。

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

但是,在阅读了大圆圈之后,它说:

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

  • 因此,在下图中您可以看到,我将始终确定 y、z 点将在墨尔本。
  • 但是,使用弯曲的边界框,它可能无法覆盖整个墨尔本,因此我不确定点是否位于墨尔本内部。

在此处输入图像描述

4

1 回答 1

0

你需要区分盒子本身和它在平面上的表现。您可以阅读有关地图投影的信息,以了解为什么/如何将弯曲炉膛上的直线表示为平面纸上的曲线。

现在,要使您的功能正常工作,最重要的是要保持一致并始终在所有数据之间使用相同的投影(或不使用投影!)。你有一个未投影的经纬度边界框(所以坐标以度数表示)?好吧,只要把你的点也放在经纬度上。然后评估该点是否在内部。最简单的是使用类似ST_WITHIN的 postgis 函数。然后由您决定是否显示它,无论是作为经纬度(直线)还是首先投影它(曲线)。

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

于 2017-06-15T14:13:36.533 回答