【发布时间】:2018-05-15 08:24:00
【问题描述】:
我有一张表,使用 Linestring 记录用户的轨迹:
CREATE TABLE users
(
id serial DISTINCT,
trajectory Geometry(LINESTRING)
);
我的问题是:给定一组 B 点,如何选择所有靠近 B 点的用户。(距离 B 中任意点超过 n 米的用户)
我尝试用谷歌搜索“postgis if Linestring 中的任何点”,但什么也没找到。我能想到的方法是创建一个像这样的新表(拆分第一个表中的行,一行代表用户去过的一个点),然后在单点上使用函数:
CREATE TABLE users
(
user_id serial,
have_been_to_point Geometry(POINT)
);
有没有更好的方法来做到这一点?
【问题讨论】:
-
能否再添加一些示例数据?
标签: sql postgresql postgis