问题描述
我该怎么办?
我看到了这篇文章:
但是功能ST_X
,ST_Y
仅在POINT
上有效,而在polyGON
上无效。
如何以经/长格式显示geom字段(包含多边形)?
解决方法
取决于您想要的输出,很可能ST_ASGEOJSON已经完成了您想要的一切,但是否则,您可以使用ST_DUMPPOINTS来获取多边形的所有单个点。
SELECT polygon.id,( SELECT ARRAY_AGG(ST_Y(geom ORDER BY path))
FROM ST_DUMPPOINTS(polygon) AS points ) as latitudes,( SELECT ARRAY_AGG(ST_X(geom ORDER BY path))
FROM ST_DUMPPOINTS(polygon) AS points ) as longitudes
FROM polygons
将返回每个多边形的经度和纬度的有序列表。 如果要合并,请使用JSON:
SELECT polygon.id,( SELECT ARRAY_AGG(
JSON_BUILD_OBJECT(
'latitude',ST_Y(geom),'longitude',ST_X(geom)
) ORDER BY path)
)
FROM ST_DUMPPOINTS(polygon) AS points )
FROM polygons