다각형의 LAT / LONG을 표시하는 방법은 무엇입니까?

Aug 19 2020

나는 기하 구조 필드와 테이블이 (종류 : geometry)

의 값을 polygon위도 / 경도 로 표시하고 싶습니다 .

내가 어떻게 해 ?

나는이 포스트를 보았다 :

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

하지만 기능은 ST_X, ST_Y단지 작동 POINT하지에 POLYGON.

Geom 필드 (폴리곤 포함)를 위도 / 경도 형식으로 표시하려면 어떻게해야합니까?

답변

3 RubenHelsloot Aug 19 2020 at 17:15

원하는 출력에 따라 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