이 작업은 json_build_object
PostgreSQL 9.4 이상에서 조금 더 간단하게 수행 할 수 있으며 ,이를 통해 키 / 값 인수를 번갈아 제공하여 JSON을 구축 할 수 있습니다. 예를 들면 다음과 같습니다.
SELECT json_build_object(
'type', 'Feature',
'id', gid,
'geometry', ST_AsGeoJSON(geom)::json,
'properties', json_build_object(
'feat_type', feat_type,
'feat_area', ST_Area(geom)::geography
)
)
FROM input_table;
PostgreSQL 9.5+에서는 jsonb
데이터 유형 ( docs )에 일부 새로운 연산자가 추가되는 상황이 훨씬 좋아졌습니다 . 이것은 id와 geometry를 제외한 모든 것을 포함하는 "properties"객체를 쉽게 설정할 수있게합니다 .
SELECT jsonb_build_object(
'type', 'Feature',
'id', gid,
'geometry', ST_AsGeoJSON(geom)::jsonb,
'properties', to_jsonb(row) - 'gid' - 'geom'
) FROM (SELECT * FROM input_table) row;
FeatureCollection을 만들고 싶습니까? 그냥 다음과 같이 마무리하십시오 jsonb_agg
.
SELECT jsonb_build_object(
'type', 'FeatureCollection',
'features', jsonb_agg(features.feature)
)
FROM (
SELECT jsonb_build_object(
'type', 'Feature',
'id', gid,
'geometry', ST_AsGeoJSON(geom)::jsonb,
'properties', to_jsonb(inputs) - 'gid' - 'geom'
) AS feature
FROM (SELECT * FROM input_table) inputs) features;