예전부터 벡터 공간정보 저장을 위한 Shapefile(쉐이프 파일)은 ESRI社에서 만든 포맷입니다. 이 파일은 하나의 파일이 아니라, *.shp, *.shx, *.dbf, *.prj 파일들로 구성되어 있습니다.
예를 들어 world 쉐이프 파일을 메일로 보내달라고 하면, world.shp 파일과 함께 world.shx, world.dbf, world.prj 파일을 함께 보내야 받는 쪽에서 내용을 확인 할 수 있습니다. 간단히 설명하자면 shp 파일에는 기하정보(Geometry), dbf 파일에는 속성정보(Attribute), shx 파일은 shp과 dbf간의 관계 맵핑정보가, prj 파일에는 좌표계 정보가 담겨있습니다.
이러한 ESRI Shapefile은 데스크톱 응용 프로그램에서 많이 사용하지만, 웹기반 응용 프로그램에서는 GeoJSON으로 주로 공간데이터를 주고받습니다.
한줄의 명령어로 ESRI Shapefile을 GeoJSON 파일로 변환하는 방법은 다음과 같습니다.
ogr2ogr --config SHAPE_ENCODING UTF-8 -f "GeoJSON" -t_srs EPSG:4326 -lco SIGNIFICANT_FIGURES=8 out.geojson input.shp
한줄이 조금 길긴 하네요.
ogr2ogr 이라는 명령어는 GDAL 프로그램을 설치하면 사용할 수 있습니다. 윈도우나 리눅스용 모두 오픈소스로 설치가 가능합니다. 윈도우용 최신 설치 파일은 여기에서 받으실 수 있습니다. GDAL 공식사이트는 아니지만(?), 윈도우용 빌드 파일을 배포하고 있습니다.
GDAL 이외의 선택적인 플러그인은 개별적으로 라이센스를 획득해야 한다고 주의사항이 적혀있습니다. 위 명령어는 GDAL Core만 설치하면 사용할 수 있습니다.
옵션을 간단하게 설명 드리면
--config SHAPE_ENCODING UTF-8은 한글 깨짐 방지를 위해서 필요한 옵션으로 한글이 깨진다면 dbf 파일의 인코딩을 확인해보셔야 합니다.
- f "GeoJSON" 은 결과 파일의 포맷을 지정합니다. GeoJSON이외에도 도움을 보시면 대부분의 벡터 포맷을 지원합니다.
-t_srs EPSG:4326 은 결과 파일의 좌표계를 지정합니다. GeoJSON은 기본적으로 EPSG:4326(경위도 좌표계, GPS사용 좌표계) 입니다.
-lco SIGNIFICANT_FIGURES=8 유효 자릿수를 지정합니다. 좌표들이 소숫점 몇자리 정도 남길지 정합니다.
※ 주의하실 점은 결과 파일명, 입력 파일명 순으로 끝나야 한다는 것입니다.
왜 이렇게 헷갈리게 했는지 모르겠지만, 입력, 결과 순이 아니라 결과, 입력 순으로 파일이름을 지정하셔야 합니다.
보통 대량의 파일을 변환하는 배치 작업에서 많이 사용하고, 하나의 작은 파일을 변환할 때는 다른 글에서 언급한 online 사이트(https://geojson.io)를 이용하시면 됩니다.
'공간정보 > 한줄 팁(Tip)' 카테고리의 다른 글
윈도우 Speech Properties 창 띄우기 (0) | 2022.05.12 |
---|---|
한줄 팁 - PostGIS 교차 중복된 면적 구하기 (0) | 2022.02.16 |
한줄 팁 - Postgresql에서 CSV 바로 만들기 (0) | 2022.02.16 |
한줄 팁 - 여러 개의 shp 파일을 하나로 합치기 (0) | 2022.01.21 |
한줄 팁 - 좌표 입힌 GeoTiff 파일 만들기 (0) | 2022.01.21 |