如何显示LAT/LONG个多边形?

How to display LAT/LONG of polygon?

我有一个带有 geom 字段的 table(类型:geometry

我想在 lat/long 中显示 polygon 的值。

我该怎么做?

我看到了这个post:

https://gis.stackexchange.com/questions/95373/convert-geometry-to-latitude-longitude-using-postgis-st-transform/95376

但函数 ST_XST_Y 仅适用于 POINT 而不适用于 POLYGON

如何以 lat/long 格式显示 geom 字段(包含多边形)?

根据您想要的输出,很可能 ST_ASGEOJSON already does everything you want, but otherwise, you can use 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

会 return 排序每个多边形的纬度和经度列表。 如果你想合并它们,使用 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