1. 설치

우분투

 : http://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS21UbuntuPGSQL93Apt

CentOS

 :  http://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS21CentOS6pgdg


2. 테이블 생성

CREATE TABLE tb_poi

(

    idx INTEGER not null,

    gps geometry, 

    CONSTRAINT pk_poi PRIMARY KEY (idx)

)

WITH (

    OIDS=FALSE

);


3. 데이터 입력

WGS84:4326 좌표계로 거리 계산이 안되기 때문에 EPSG:2097 좌표계로 변환하여 데이터 입력함


- geometry : WGS84 좌표계 (경도/위도)

    : ST_GeomFromText('POINT(127.01763868331909 37.508993923524145)', 4326)

- geometry : WGS84 좌표계 -> EPSG 좌표계 변환

    : ST_Transform(ST_GeomFromText('POINT(127.01763868331909 37.508993923524145)', 4326), 2097)


INSERT INTO tb_poi(idx, gps) VALUES (1, ST_Transform(ST_GeomFromText('POINT(127.01763868331909 37.508993923524145)', 4326), 2097));


4. 반경검색

WGS84:4326 좌표계를 EPSG:2097 좌표계로 변환하여 반경검색 

 - 미터기준


SELECT *  -- 100미터 반경 검색에 포함된 POI 조회

FROM tb_poi

WHERE 

    ST_DWithin(gps, ST_Transform(ST_GeomFromText('POINT(127.01937675476074 37.50916413798163)', 4326), 2097), 100); 


'DBMS > postgresql' 카테고리의 다른 글

WGS84 거리 계산 함수  (0) 2015.01.15
[postgresql] - OIDS 란?  (0) 2015.01.02
Posted by 짱가쟁이