MySQL DB & GIS(지리데이터)

김윤하·2022년 10월 17일
0

Data Engineer

목록 보기
2/6

🌍 GIS란?

  • GIS(Geographic Information System) 란 인간생활에 필요한 지리정보를 컴퓨터 데이터로 변환하여 효율적으로 활용하기 위한 정보시스템
  • 정보시스템이란 의사결정에 필요한 정보를 생성하기 위한 제반 과정으로서 정보를 수집, 관측, 측정하고 컴퓨터에 입력하여 저장, 관리하며 저장된 정보를 분석하여 의사결정에 반영할 수 있는 시스템
  • GIS는 지리적 위치를 갖고 있는 대상에 대한 위치자료와 (spatial data)와 속성자료(attribute data)를 통합·관리하여 지도, 도표 및 그림들과 같은 여러 형태의 정보를 제공한다.
    즉 GIS란 넓은 의미에서 인간의 의사결정능력 지원에 필요한 지리정보의 관측과 수집에서부터 보존과 분석, 출력에 이르기까지의 일련의 조작을 위한 정보시스템을 의미한다.
  • GIS는 인간의 현실생활과 밀접한 관계가 있는 모든 자료를 취급하므로서 광범위한 활용분야를 가지고 있다. GIS의 활용분야는 토지, 자원, 도시, 환경, 교통, 농업, 해양 및 국방에 이르기까지 다양한 산업 전반에 걸쳐 빠르게 발전하고 있다.

MySQL Geospatial Index

MySQL 5.7.5 버전의 InnoDB 스토리지 엔진부터 지원하는 geospatial index GEOMETRY 컬럼의 쿼리 속도를 향상 할 수 있다.

  • Contains(g1, g2)
  • Disjoint(g1, g2)
  • Equals(g1, g2)
  • Intersects(g1, g2)
  • Overlaps(g1, g2)
  • Within(g1, g2)
select version(); -- mysql 버전확인하기

select * where Within(location, Envelope(GeomFromText("LINESTRING(127.04673307164359 37.502703988850925, 127.05125692835642 37.50630801059796)")));

SRS (Spatial Reference System)

SRS 는 지구타원체를 2차원으로 표현하기 위한 좌표계 입니다. 3차원 상의 지구타원체를 완벽하게 2차원으로 표현할 수 있는 방법은 존재하지 않으므로, 저마다 목적에 따른 투영법 (map projection) 을 정의하고, 그에 따라 지구타원체 표면 위의 점들을 2차원 좌표계 상의 점으로 매핑합니다. 세계 지도를 그리는데 쓰이는 것으로 유명한 메르카트로 도법이 그 예입니다.

하지만 5.x때 버전에서는 SRS 를 지정하는건 메타데이터를 저장하는 정도의 의미에 그칠뿐, 실제로 연산에 사용되진 않습니다. epsg 4326일때 ST_Distance 함수는 SRS 를 인식하지 못한채 직교 좌표계 위의 두 점으로 간주하여 5.0 을 반환합니다. 따라서 별도의 ST_Distance_Sphere 함수를 사용해야 합니다.

# SRID 4326 의 point record 를 insert
insert into place (p) values (ST_GeomFromText("point(0.0 0.0)", 4326));

reference

http://www.nsdi.go.kr/lxportal/?menuno=4066
https://chang12.github.io/mysql-geospatial-index-1/

profile
data engineer

0개의 댓글