【发布时间】:2025-12-13 16:45:02
【问题描述】:
在我的项目中,我们有一个名为 Trip 的实体。这次旅行有两点:起点和终点。开始和结束是带有一些附加属性的地理坐标,例如地址 atc。
我需要查询所有满足开始和结束搜索条件的行程。
喜欢
select from trips where start near 16,16 and finish near 18,20 where type = type
所以我的问题是:哪个数据库可以提供这样的功能?
我的尝试
我探索了支持地理索引但不支持此用例的 mongodb。当前的解决方案将这些点存储为单独的文档,这些文档具有对旅行的引用。我们对开始和结束运行两个单独的查询,然后提取其关联行程的 ID,然后选择在开始和结束中都找到的行程 ID,最后返回行程集合。
在一个小样本上它工作得很好,但在一个大样本上它会变慢,就像用我的右手挠我的左耳。
所以我正在寻找更好的解决方案。
我知道 neo4j 及其空间插件,但我什至无法让它在 Windows 上运行。它会支持我们的用例吗?
或者有没有更好的解决方案?最好使用用 php 编写的对象映射器。
【问题讨论】:
-
看看 openstreetmap.org 他们使用 postgres (PostGIS) 并且 mssql 端口也可用。 wiki.openstreetmap.org/wiki/Main_Page我们为没有地图点许可证的客户使用它。
-
我不需要地图,我需要搜索用户提供的数据。 postgis 是否支持多位置实体?
标签: database geospatial