본문 바로가기
해외사업

KML로 구글어스에서 사업노선의 경로정보 공유하기

by 블로그 이전 중 2015. 12. 21.

해외사업을 진행하다보면 도로노선의 시종점과 경로를 확인하기 어려운 경우가 있습니다. 같이 작업하는 현지인에게 설명하려면 더 어렵기도 합니다. 이때 유용한 도구가 구글어스와 KML입니다. KML(Keyhole Markup Language)은 구글지도와 구글어스 등에서 지리 데이터를 표시하는 파일형식입니다. 가끔 KMZ 파일 확장자도 보이는데, 

KMZ 파일형식은 KML 파일이 10 Kbyte를 넘거나 사진이나, 음성, 건물 모형 등 다른 파일을 참조할 때 생성하는 압축파일입니다. 


도로노선을 표시한 KML 파일을 구글어스에서 열면 아래 그림처럼 나타납니다.

 



도로노선의 시종점과 경로를 표시하기위해 KML 전체에 대해 능숙하게 다룰 필요는 없습니다. 알아야 할 것은 딱 두 가지 - 좌표 정보 얻기와 샘플 파일에 내용 채워넣기입니다. 


1. 좌표 정보 얻기

구글어스에서 좌표정보를 얻고자 하는 지점 부근에서 지점 아이콘을 추가합니다. 

원하는 지점으로 아이콘을 이동하면 팝업메뉴에서 경도와 위도를 볼 수 있습니다. 원하는 지점에 압핀 모양의 아이콘을 움직이면서 좌표를 확인할 수 있습니다. 좌표는 사각 박스의 중심이 아니라 압핀의 뾰족한 꼭지 부분의 좌표입니다. 




도분초로 보이면 화면 상단의 도구 메뉴에서 옵션을 누른 후, 위도/경도 표시를 '십진법으로 표기'로 선택합니다. 여기에 쓰인 구글어스는 구 버전(6.6)입니다. 이후 버전은 메뉴가 약간 다를 수도 있습니다.




경로를 만들려면 노선이 꺾이는 주요 지점의 좌표를 확인해야합니다. 지점을 많이 찍을 수록 경로는 실제 도로와 비슷하게 표현할 수 있습니다. 


2. KML 파일 만들기

좌표 정보를 모았으면, 경로를 표현하는 KML 파일을 만듭니다. 시간을 줄이기위해 구글에서 제공하는 샘플 파일에서 원하는 부분만 따왔습니다.




Sample_t-eng.kml



지점 정보 기록하기

지점 정보는 <Point>로 표시합니다. 위 그림의 '점의 좌표 입력' 부분에 해당 지점의 경도와 위도를 십진수로 입력합니다. 


노선 정보 기록하기

노선 정보는 <LineString>으로 표시합니다. 위 그림의 '경로의 좌표 입력' 부분에 노선 주요 지점의 경도와 위도를 입력합니다. 


선의 색깔 및 굵기 적용하기

선의 속성을 정해주지 않으면 흰색이나 검은색의 가는 선으로 표시되어 알아보기 어렵습니다. 여러 노선이거나 구간을 나누는 경우는 색을 달리해야 알아보기 쉽습니다. 선의 속성을 적용하는 방법은 다음과 같습니다. 


먼저, 선의 속성을 정의합니다. 위 예에서는 redLine 으로 이름 짓고, 굵기 10의 빨간색 불투명선을 정의했습니다. 아래 굵은 글씨로 표현한 부분만 바꾸면 색상과 굵기를 설정할 수 있습니다. 

<Style id="redLine">

  <LineStyle>

  <color>ff0000ff</color>

  <width>10</width>

  </LineStyle>

  </Style> 


색상에서 ff 00 00 ff 는 앞에서부터 투명도, 파란색, 녹색, 빨간색입니다. 00이면 해당 색이 없는 것이고, ff이면 농도가 가장 진한 상태입니다. 파란색과 녹색, 빨간색의 비율을 잘 조절해서 색을 만들면 됩니다. 맨 앞의 투명도는 00에 가까우면 투명한 색이고, ff이면 완전 불투명한 색입니다. 위의 예에서는 ff(완전 불투명) 00(파란색 안 섞음) 00(녹색 안 섞음) ff(빨간색 다 섞음)으로 설정하여 진한 빨간색 선을 정의했습니다. 

이렇게 정의한 후에는 필요한 부분에서 불러서 씁니다.

<styleUrl>#redLine

    </styleUrl>

스타일에서 정의한 이름앞에 #을 붙이고 <styleUrl> 과 </styleUrl> 사이에 끼워넣습니다. 


샘플로 작성한 파일을 저장하고, 더블클릭하면 구글어스가 아래 화면처럼 뜹니다. 



노선 정보 공유에 필요한 부분은 딱 이만큼입니다. 


응용하면 지점에 대한 설명을 표로 정리해서 띄울 수도 있고, 건물이나 주변의 지형을 올릴 수도 있습니다. 관심이 있으신 분은 KML을 더 공부해보세요.



구글 KML 가이드 링크 : https://developers.google.com/kml/documentation/topicsinkml?hl=en