Jon*_*nas 8 database gis spatial geospatial bounding-box
我正在设计一个需要在数据库中保存几何形状的应用程序.我还没有选择数据库管理系统.
在我的应用程序中,所有数据库查询都有一个边界框作为输入,作为输出我想要该数据库中的所有形状.我知道具有空间索引的数据库用于这种应用程序.但是在我的应用程序中,不会有任何类型的问题"给我x/y附近的对象"或者在GIS应用程序中有用的其他更复杂的查询.
我计划拥有一个没有空间索引的数据库,并且查询类似于:
SELECT * FROM shapes WHERE x < max_x AND x > min_x AND y < max_y AND y > min_y
Run Code Online (Sandbox Code Playgroud)
并且列和列上有索引.我可以看到,我真的不需要一个具有空间索引的数据库,无论我的应用程序接近那种应用程序.x (double)y (double)
即使我想要附近的查询,那么我可以围绕这一点创建一个足够大的边界框.或者这会导致表现不佳?
我真的需要空间数据库吗?何时需要空间索引?
编辑: 搜索查询实际上比我上面写的更先进,因为我处理几何形状我将输入一个边框,它将返回多个形状(带有边界框)内部或干扰框在查询中.但在阅读了所有好的答案之后,我仍然认为我可以在没有空间索引的情况下做到这一点.
我真的需要空间数据库吗?
看起来您正在做的事情对您的应用程序来说效果很好。
即使我想进行附近的查询,我也可以在该点周围创建一个足够大的边界框。
您可能需要考虑在Geohash上创建索引。建议将此方法用于在 Google App Engine 上对地理空间点建立索引,例如,索引功能有限的情况。(来源)
什么时候需要空间索引?
空间索引在很多场景中都很有用。首先,空间索引不仅可以处理点,还可以处理折线、多边形和其他形状。此外,正如您已经提到的,有许多复杂的查询操作可以应用于空间数据,其中适当的空间索引是必不可少的。