【发布时间】:2020-02-17 07:31:49
【问题描述】:
所以我在 PostgreSQL 数据库中有一个包含 POINT 对象和 LINESTRING 对象的列。现在我的最终目标是从这些对象中提取纬度和经度。对于 POINT 对象,我可以简单地通过查询来做到这一点:
SELECT ST_X(records.primary_location) AS latitude,
ST_Y(records.primary_location) AS longitude
FROM records
现在,如果它只是数据库中的 POINT 对象,这将得到我所有的纬度和经度。 但是,也有 LINESTRING。从这些我想提取第一个点,然后检索每个点的纬度和经度。为了实现从 POINTS 和 LINESTRING 获取纬度/经度,我尝试了:
SELECT ST_X(ST_PointN(records.primary_location, 1)) AS latitude,
ST_Y(ST_PointN(records.primary_location, 1)) AS longitude
FROM records
我假设ST_PointN() 会从 LINESTRING 中提取第一个点,并从 POINT 对象中保留一个点。但是,这不起作用。
有没有人知道如何从一列中的这两种类型的对象中同时检索纬度/经度坐标?另外,我希望这发生在一个查询中。
【问题讨论】:
标签: sql postgresql postgis