【发布时间】:2018-08-16 13:55:14
【问题描述】:
我正在开发一个允许用户上传 GPX 文件的网站,该网站有一个表,其中包含存储在 postgis 中的行字符串。这些线串是道路和小径的部分。然后,网站从 gpx 文件中计算出 gps 日志所经过的所有线串(方向很重要)。问题是数据库中可能有数百万个这样的线串,如果 gps 日志沿着一个行进相当昂贵,所以我需要一些方法来确定可能匹配的线串,然后再将它们从数据库中拉出。
我的一个想法是将线串的第一个点存储在它自己的索引列中。然后绘制一个包含整个 gpx 日志的框,并在该框中查找每个带有起点的线串。我认为这将允许快速搜索,但如果 gpx 日志很长并且沿对角线移动,它可能会创建一个巨大的框,其中大部分区域距离任何 gpx 跟踪点都非常远。
这个想法的一个改进是绘制多个包含 gps 轨迹的小框。这会占用更少的空白空间,但需要更多查询。
我可以使用哪些方法来快速找到 postgis 中可能与 gps 跟踪匹配的线串?
【问题讨论】:
-
如果我的问题是正确的:您是否考虑过将线串拆分为点,然后从大表中仅提取接近这些点的几何图形?
-
为了澄清,该表包含所有线串,并且有一个 gpx 日志。我考虑过从 gpx 日志点之一开始的线串进行搜索,但 gpx 文件可能有数千个点,我不知道您是否可以执行一次查询来查找点列表附近的所有内容。
-
我添加了一条评论作为答案...这里太大了。完成后告诉我,以便我改进或删除它:-) 干杯
标签: postgresql postgis