본문 바로가기
개발/GIS

Postgresql 폴리곤내 포인트 공간분석

by Strong_옹이 2024. 12. 13.
728x90
반응형

EPSG:3857으로 저장된 구역(폴리곤)에 포인트가 몇개 포함되어있는지 계산 수집한 좌표는 텍스트로 4326좌표계

1. 텍스트로 수집한 좌표값을 EPSG:4326에서 EPSG:3857로 변환
2. 텍스트로 저장된 좌표를 `ST_Point`로 변환한 후 SRID를 설정하고, `ST_Transform`을 통해 EPSG:3857로 변환

SELECT 
    polygon.id AS polygon_id,
    COUNT(point.id) AS point_count
FROM 
    polygon_table AS polygon
LEFT JOIN (
    SELECT 
        id,
        ST_Transform(
            ST_SetSRID(
                ST_Point(
                    CAST(SPLIT_PART(coordinates, ' ', 1) AS DOUBLE PRECISION), 
                    CAST(SPLIT_PART(coordinates, ' ', 2) AS DOUBLE PRECISION)
                ), 
                4326
            ), 
            3857
        ) AS geom
    FROM 
        point_table
) AS point
ON ST_Contains(polygon.geom, point.geom)
GROUP BY polygon.id;

728x90
반응형

댓글