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 |