PostgreSQL 테이블을 GeoJSON으로 조회
PostgreSQL에 등록된 공간 테이블을 GeoJSON으로 조회합니다.
아래 테이블은 이전글 참조
2021.05.18 - [개발/GIS] - QGIS를 사용하여 PostgreSQL(PostGIS) DB 에 shape파일 등록하기
QGIS를 사용하여 PostgreSQL(PostGIS) DB 에 shape파일 등록하기
shp2pgsql를 사용하지 않고, QGIS를 사용해서 Shape파일 PostgreSQL DB 등록 1. 사전환경 - 개발서버(Linux CentOS 7)내 PostgreSQL 9.6.18, PostgreSQL 9.6.13 설치 - PC 내 QGIS Desktop 3.16.4 - 등록할 데이터..
lky1.tistory.com
1. 테이블 조회
SELECT * FROM TL_SIDO;
2. 1번에서 조회된 결과를 GeoJSON으로 조회하기 위해 PostgreSQL에서 제공하는 jsonb_build_object와 ST_AsGeoJSON()을 이용하여 Feature로 만들어 줍니다.
SELECT jsonb_build_object(
'type', 'Feature',
'sido_name', name,
'sido_code', bjcd,
'geometry', ST_AsGeoJSON(geom)::jsonb,
'properties', to_jsonb(inputs) - 'gid' - 'geom'
) AS feature
FROM (SELECT * FROM tl_sido) inputs
3. jsonb_build_object와 jsonb_agg를 이용하여 Feature정보들을 하나의 FeatureCollection으로 만들어줍니다.
SELECT jsonb_build_object(
'type', 'FeatureCollection',
'features', jsonb_agg(features.feature)
)
FROM (
SELECT jsonb_build_object(
'type', 'Feature',
'sido_name', name,
'sido_code', bjcd,
'geometry', ST_AsGeoJSON(geom)::jsonb,
'properties', to_jsonb(inputs) - 'gid' - 'geom'
) AS feature
FROM (SELECT * FROM tl_sido) inputs) features;
- 공간정보의 버텍스가 많은 경우 많은 시간이 소요 될 수 있습니다.
4. GeoJSON파일저장
- 상단의 파일 > 익스포트에서 조회한 GeoJSON 파일을 저장합니다.
5. 저장결과 확인
저장된 파일을 가지고, QGIS나 OpenLayers를 이용하여 웹에도 표출 가능합니다. 시도경계의 경우 각 시도별 버텍스가 많아 웹 표출시에는 버텍스를 간략화하여 조회하여야 합니다.
위와같은 방법으로 GeoJSON 외에도 JSON으로도 조회가 가능합니다.