如何显示LAT/LONG个多边形?
How to display LAT/LONG of polygon?
我有一个带有 geom 字段的 table(类型:geometry
)
我想在 lat/long 中显示 polygon
的值。
我该怎么做?
我看到了这个post:
但函数 ST_X
、ST_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
我有一个带有 geom 字段的 table(类型:geometry
)
我想在 lat/long 中显示 polygon
的值。
我该怎么做?
我看到了这个post:
但函数 ST_X
、ST_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