처음이라면 · 3분

지도 파일이 웹에 뜨기까지

공간 데이터 원본은 웹 브라우저에서 그대로 안 보임. 그래서 거치는 두 단계 — 원본을 다듬는 전처리, 웹용으로 바꾸는 변환. 왜 필요한지만 그림으로. 숫자는 이 사이트가 실제로 처리한 데이터.

출발점

웹 지도가 바로 그리는 형식은 정해져 있음

SHP·LAS·IFC 같은 원본은 GIS·측량·설계 프로그램용. 웹 지도는 그림(PNG·JPEG), JSON, 벡터타일, glTF·3D Tiles 같은 웹 형식을 그림 → 원본은 그대로 못 올림.

이 사이트 26개 확장자 모두 웹 형식으로 바꿔 웹 지도 4종으로 확인.

원본웹 형식브라우저.shp✕.pbf.las✕.pnts.ifc✕.glb.img✕.png

전처리 ①

위치를 적는 기준이 파일마다 다름

같은 서울시청도 국내 파일은 미터 단위 (198,054, 551,897), 웹 지도는 위도·경도 (37.567, 126.978). 기준을 모르고 읽으면 점이 바다나 지도 밖으로 → 웹 지도 기준으로 다시 적기 (좌표계 변환).

이 사이트 서울 상권 SHP: 국내 미터 좌표 → 위도·경도. 도쿄역 3D 건물은 위도·경도 순서를 반대로 읽어 바다 위로 갔던 경우.

서울시청✕ 그대로 읽음국내 파일 · 미터 단위198,054 · 551,897중부원점 기준 동·북 거리좌표계 변환웹 지도 · 위도·경도37.567 · 126.978✓ 서울시청에 정확히

전처리 ②

한글이 깨짐

국내 공공 데이터는 옛 한글 저장 방식(CP949)이 많고 웹은 UTF-8. 그대로 읽으면 이름·주소가 깨진 글자 → 저장 방식 바꾸기.

이 사이트 버스정류장 CSV의 첫 단계가 UTF-8 변환. SHP는 파일 내용으로 저장 방식 판별.

정류장명CP949 그대로 읽음UTF-8로 바꾼 뒤��ȭ��광화문���↑����ȯ�¼���서울역버스환승센터������ȭȸ��세종문화회관

전처리 ③

필요한 만큼, 잘못된 것 빼고

원본은 보통 필요보다 크고 실수도 섞임. 미리 걸러야 지도에 엉뚱한 점·겹친 점이 안 생김.

이 사이트 전국 버스정류장 227,065행 → 좌표가 뒤바뀌거나 빈 행 12개, 서울·경기에 같은 번호로 두 번 등록된 서울 정류장 3,844개 확인 → 서울 12,956개만.

좌표 이상전국227,065좌표 이상 빼기−12서울만 · 중복 정리12,956

변환 ①

한 번에 다 받기 대신 보이는 조각만

다듬은 데이터도 파일 하나면 브라우저가 끝까지 받은 뒤에 그림. 지도 타일: 지도를 바둑판 조각으로 미리 잘라 화면에 든 조각만 받음. 확대하면 그 자리만 더 잘게 → 큰 데이터도 바로.

이 사이트 서울 버스정류장: GeoJSON 하나 2.1MB ↔ 벡터타일 조각 495개, 조각 하나 평균 약 7KB.

파일 하나지도 타일받는 중… 다 받을 때까지 빈 화면다 받은 뒤 한꺼번에화면(파란 테두리)에 든 4장부터 바로확대 → 그 자리만 더 작은 조각

변환 ②

3D는 가까운 곳만 촘촘히

점군·3D 건물은 훨씬 큼. 3D Tiles: 멀리서는 성긴 조각만, 다가가면 그 부분의 촘촘한 조각을 더 받음 → 수억 점도 웹에서.

이 사이트 치악산 둘레길 한 구간 LAS 675,472점 → 3D Tiles 조각 91개.

멀리가까이점선 = 3D Tiles 조각 · 다가갈수록 작은 조각을 더 받음

정리 — 네 단계

  1. 수집공개된 원본 받기. 이 사이트는 확장자마다 실제 기관 원본.
  2. 전처리위치 기준·글자 맞추기, 필요한 범위만, 잘못된 값 빼기.
  3. 웹 형태 변환웹이 읽는 형식으로, 보이는 만큼만 받는 조각으로.
  4. 시각화·렌더링웹 지도 라이브러리(OpenLayers·MapLibre·Deck.gl·CesiumJS)와 엔진으로 그리기.