获取点的最近位置,同时考虑水体

时间:2019-04-12 07:22:26

标签: elasticsearch geospatial postgis google-distancematrix-api

我有一个点数数据库(在这种情况下,是学校),在我的应用程序中,用户搜索距它们最近的点数。在幕后,我们当前正在使用ElasticSearch过滤latlng(使用Geo Distance,它会随着乌鸦的飞行而获得距离。在大多数地方,这种方法效果很好,但是在某些沿海地区,不可能到达的地方,在下面的示例中,半径20英里将在Weston-Super-Mare拾取学校,实际上是55英里:

20 mile radius from Cardiff showing Weston-Super-Mare

最初,我决定使用Google Maps Distance Matrix API来过滤我的首字母缩写,但是当每次查询都没有限制时,每个查询最多只能有25个目的地,而且由于请求是动态且面向用户的,因此不可行将这些请求打包成小块,然后弹出后台作业。

在数据库级别考虑水体的情况下,是否有任何方法可以进行这些计算?这些学校存储在Postgres数据库中,所以我考虑过使用PostGIS和多边形查询中的某种点,但是我不知道从哪里开始寻找。

非常感谢任何想法!

0 个答案:

没有答案