gpt4 book ai didi

postgresql - 在 PostGIS 中,如何将时间戳分配给 LINESTRING 中的每个点?

转载 作者:行者123 更新时间:2023-11-29 12:20:12 25 4
gpt4 key购买 nike

我想用LINESTRING记录汽车行驶的路径,既有空间信息又有时间信息。

在 PostGIS 中,有没有办法为 LINESTRING 中的每个 POINT 分配时间戳?

最佳答案

不,这是不可能的,因为线串是以二进制格式存储的,即所谓的Enhanced Well-Known Binary (EWKB)。格式。在这种格式中,您不能将任何信息与各个坐标相关联。

您可以做的是将沿汽车路径的点存储在 (a) 个单独的表中,然后使用标准的 PostGIS 函数(例如 )将这些点与线串相关联 - 大概是道路网络ST_Distance()ST_ClosestPoint()linear referencing 的任何一个.

你的模型应该是这样的:

table: car
id serial PRIMARY KEY
...

table: ride
id serial PRIMARY KEY
car integer NOT NULL REFERENCES car
...

table: ride_path
id serial PRIMARY KEY
ride integer NOT NULL REFERENCES ride
loc geometry(4326, 'POINT') NOT NULL
tim timestamp
...

使用此结构,您可以使用标准 SQL 查询将汽车的每个位置关联到特定的线串,或线串上的某个位置(例如 ST_LineLocatePoint())。

关于postgresql - 在 PostGIS 中,如何将时间戳分配给 LINESTRING 中的每个点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30091003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com