PostGIS从POLYGON中提取坐标

Har*_*Geo 8 postgresql postgis

我正在尝试从PostgreSQL中使用PostGIS扩展创建的多边形列中提取纬度/经度值,我尝试使用像这样的查询来获取坐标

询问

ST_AsText(coverage_area) as coverage_area 但它返回的输出对我来说不是一个方便的形式.

产量

POLYGON((37.9615819622 23.7216281890869,37.9617173039801 23.7193965911865,37.9633413851658 23.717679977417,37.964559422483 23.7147617340087,37.9644240860015 23.7116718292236,37.9615819622 23.7216281890869))

我需要输出如下:

37.9615819622 23.7216281890869,37.9617173039801 23.7193965911865,37.9633413851658 23.717679977417,37.964559422483 23.7147617340087,37.9644240860015 23.7116718292236, 37.9615819622 23.7216281890869

我还搜索了PostGIS文档,我发现的唯一的事情就是ST_AsGeoJSON这也没有帮助我......还有其他人遇到过这个问题吗?

谢谢.

注意:我知道我可以创建一个正则表达式规则并删除括号但我想避免这种情况并找到一种方法来返回"干净"的坐标对

Tom*_*ico 13

使用函数st_dumppoints提取几何的所有点以及函数ST_xST_y以提取点的坐标.然后使用array_agg和array_to_string构建一个包含所有坐标的行

试试这个查询:

SELECT array_to_string(array_agg, ',') FROM 
(SELECT array_agg( ST_x(geom)||' '||ST_y(geom))  FROM 
    (SELECT (ST_dumppoints(coverage_area)).geom FROM your_table
    ) AS foo_1
) AS foo_2;
Run Code Online (Sandbox Code Playgroud)


web*_*elo 7

将 GeoJson 几何体转换为 json,然后提取坐标:

SELECT 
  ST_AsGeoJSON(geom) :: json->'coordinates' AS coordinates
FROM
  your_table;
Run Code Online (Sandbox Code Playgroud)

请参阅ST_AsGeoJSON文档中的示例部分以及PostgreSQL的JSON 函数参考