KMZ 파일

KMZ 파일이란 무엇인가요?

KMZ 파일은 기본 KML 파일 및 추가 지원 파일(없을 수도 있음)로 구성되어 있으며, Zip 유틸리티를 사용하여 아카이브라고 하는 하나의 파일로 패키징됩니다. 패키징된 KMZ 파일은 저장할 수 있으며, 이메일을 사용하여 하나의 항목으로 전송할 수도 있습니다. 네트워크 링크(NetworkLink)는 웹 서버에서 KMZ 파일을 가져올 수 있습니다. KMZ 파일의 압축을 풀면 기본 .kml 파일과 관련 지원 파일이 원래의 형식과 디렉토리 구조로 구분되며, 원래의 파일 이름과 확장자가 사용됩니다. 아카이브 형식이라는 점 외에 Zip 형식에서는 압축 또한 수행되므로, 아카이브는 하나의 대량 KML 파일만 포함할 수 있습니다. KML 파일의 콘텐츠에 따라 다르지만, 이 과정에서 보통 10:1 비율로 압축이 수행됩니다. 즉, 10Kbyte의 KML 파일을 1Kbyte의 KMZ 파일로 게재할 수 있습니다.

Google 어스 및 Google 지도는 KML 및 KMZ 파일을 직접 읽을 수 있으며, 파일을 KMZ 파일로 저장할 수 있습니다. 기본 KML 파일의 이름은 기본적으로 doc.kml로 지정됩니다.

참고: 명확하게 표시하기 위해 이 페이지에서는 KMZ 아카이브 내의 기본 KML 파일을 doc.kml이라 표시합니다. 이 기본 KML 파일의 이름을 원하는 대로 지정할 수 있습니다. 단, 이름이 .kml로 끝나야 하며, .kml 파일은 하나만 있어야 합니다.

doc.kml 파일이 10Kbyte를 초과하거나 doc.kml 파일이 다른 파일(이미지, 사운드 파일, 모델, 텍스처)을 참조하는 경우에는 KMZ 파일을 생성해야 합니다.

권장 디렉토리 구조

이 섹션에서는 KML/KMZ 파일을 만들려는 사용자를 위해 몇 가지 간단한 권장사항을 제공합니다. 이 섹션에서 사용된 예제는 Jimmy Buffett 웹사이트에서 가져온 것입니다. 이 예제에서는 KML 형식을 사용하여 예정된 콘서트 투어와 관련 하이라이트를 Google 어스에 표시합니다.

투어 정보가 포함된 KMZ 파일 다운로드(허가 하에 사용됨)

참고: Google 어스 6.0에서는 KMZ 파일에서 상대 참조를 확인하는 경우 다음과 같은 가이드라인을 엄격하게 지켜야 합니다(다음 목록에서 항목 4를 주의 깊게 참조). 이전 버전의 Google 어스에서는 이러한 상대 참조를 확인하는 방식이 엄격하지 않은 편이었습니다. 따라서 Google 어스 5.2 이하 버전에서 작동하던 몇몇 상대 참조를 6.0 이상 버전에서도 작동하도록 하려면 상대 참조를 수정해야 할 수도 있습니다.

KMZ 파일 생성 시 아래의 가이드라인을 따라 주세요.

  1. KMZ 파일의 콘텐츠를 포함할 폴더를 만듭니다. 내용을 알 수 있는 이름을 지정합니다(예: buffetthawaiitour).
  2. 기본 KML 파일(doc.kml 또는 지정하고 싶은 이름)을 이 폴더의 최상위 수준에 넣습니다. .kml 파일은 하나만 있어야 합니다. Google 어스에서 KMZ 파일을 열 때 파일을 스캔하여 이 목록의 첫 번째 .kml 파일을 찾으며, 아카이브에 있는 모든 후속 .kml 파일을 무시합니다(있는 경우). 아카이브에 여러 .kml 파일이 있는 경우 어느 파일이 가장 먼저 발견될지 알 수 없으므로 .kml 파일을 하나만 포함해야 합니다.
  3. 기본 폴더 내에 하나 이상의 하위 폴더를 추가하여 doc.kml 파일에서 참조된 이미지, 모델, 텍스처, 사운드 파일 또는 기타 리소스를 모아 놓습니다. 디렉토리 구조의 복잡도는 지원 파일의 개수와 선호하는 구성 방식에 따라 다릅니다.
  4. 상대 참조를 사용합니다. 자세한 내용은 외부 파일 참조를 확인하세요. 모든 상대 경로는 위의 항목 1에서 설명한 기본 폴더 안에서 시작됩니다. 예를 들어 KMZ 파일인 vacationJournal.kmz가 바탕화면에 있고 이 파일의 doc.kml 파일이 마찬가지로 바탕화면에 있는 myFavoritePlace.jpg 파일을 참조하는 경우, doc.kml 파일의 <href>는 ../myFavoritePlace.jpg가 됩니다.
  5. KMZ 파일 내의 하위 폴더에 .kmz 확장자를 사용해서는 안 됩니다. .kmz 확장자는 아카이브 자체의 이름에 사용되어야 합니다.

예를 들어 Jimmy Buffett 투어의 KMZ 파일 구조는 다음과 같습니다.

지원 파일의 수가 5개에 불과하므로 모든 지원 파일이 기본 폴더 내 files 하위 폴더에 모아져 있습니다. Google 어스에 파일을 로드한 후 복사하여 텍스트 브라우저에 붙여 넣으면 모든 <href> 요소에서 이러한 지원 파일에 상대 참조(투어의 아이콘, 화면 오버레이 및 사운드 파일을 나타냄)를 사용하는 것을 확인할 수 있습니다.

아이콘 참조 중 하나에 해당하는 KML 코드는 다음과 같습니다.

<IconStyle>
  <scale>1.1</scale>
  <Icon>
    <href>files/icon_surfing.png</href>
  </Icon>
</IconStyle>

사운드 파일 참조에 해당하는 KML 코드는 다음과 같습니다.

<gx:SoundCue>
  <href>files/Margaritaville.mp3</href>
</gx:SoundCue>

외부 파일 참조

일반적으로 doc.kml 파일에는 이미지, 아이콘, 모델, 텍스처 및 사운드 파일과 같은 다른 파일로 연결되는 여러 개의 링크가 포함되어 있습니다. 이러한 파일에 대한 참조는 href 속성(또는 경우에 따라 <href> 요소)에 포함되어 있으며, 다음과 같은 KML 요소에서 찾을 수 있습니다.

이러한 외부 링크는 다음 섹션의 설명과 같이 절대 또는 상대 참조 중 하나를 사용합니다. 외부 링크는 동일한 KMZ 파일 내에 있는 파일, 다른 KMZ 파일에 포함되어 있는 파일 또는 웹의 다른 위치에 저장되어 있는 파일을 참조할 수 있습니다. <Model>의 <sourceHref> 요소를 제외하고, 상대 참조는 상대 참조 확인 섹션에 설명된 내용처럼 항상 doc.kml 파일을 기준으로 확인됩니다.

절대 참조 및 상대 참조 비교

절대 참조에는 링크된 파일의 전체 URL이 포함되어 있으며, 파일이 중앙 서버에 게시되어 확실하게 확인할 수 있는 경우 유용하게 사용할 수 있습니다. 하지만 로컬 파일에 절대 참조를 사용하는 경우 파일이 새 시스템으로 이동하면 링크가 끊어지게 됩니다. 상대 참조를 사용하면 이러한 문제를 방지할 수 있습니다.

중앙 서버에 저장된 파일의 절대 참조 예는 다음과 같습니다.

<Icon>
  <href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
</Icon>

상대 참조 확인

일반적으로 상대 참조는 doc.kml 파일을 기준으로 확인됩니다. 모든 상대 URL은 KMZ 파일의 루트로 간주되는 doc.kml 파일을 포함한 디렉토리를 기준으로 확인됩니다. 하와이 투어 예제에서 기본 URL은 다음과 비슷합니다(KMZ 파일을 다운로드한 위치에 따라 다름).

buffetthawaiitour.kmz

다른 KMZ 파일에 위치한 파일(예: margaritavillealbum.kmz에 있는 images/jimmyphoto.jpg)을 참조하려는 경우 '..' 표기법을 사용하여 디렉토리 구조에서 한 단계 위로 이동할 수 있습니다. 그러면 현재 KMZ 파일(buffetthawaiitour.kmz)에서 나올 수 있습니다.

<href>../margaritavillealbum.kmz/images/jimmyphoto.jpg"</href>

참고: KMZ 아카이브의 상대 참조를 확인하는 규칙은 웹 URL 확인을 위한 RFC 3986 섹션 5 표준에 기반합니다. 기본 URL은 doc.kml 파일의 위치에 따라 결정되며, 모든 상대 URL은 이 기본 URL을 기준으로 확인됩니다.

예외: <Model>의 <sourceHref>

<Model> 요소에는 Google 어스에 로드하기 위한 COLLADA 파일을 지정하는 <Link> 요소가 있습니다. COLLADA 파일은 3D 개체를 지정하며, .dae 파일 확장자를 사용합니다. 또한 <Model> 요소에는 <targetHref>(Google 어스로 가져올 텍스처 파일)와 <sourceHref>(COLLADA .dae 파일의 텍스처 파일을 위해 지정된 경로) 사이의 매핑을 포함하고 있는 <Alias> 요소가 있습니다. <sourceHref> 요소에 상대 경로가 있는 경우 Google 어스에서는 텍스처 파일을 참조하는 dae 파일을 기준으로 이러한 경로를 해석하며, 다른 모든 경우에서처럼 doc.kml 파일을 기준으로 해석하지 않습니다. 예를 들면 다음과 같습니다.

<Model>
.
.
.
  <Link>
    <href>MackyBldg.kmz/files/CU Macky.dae</href>
  </Link>
  <ResourceMap>
    <Alias>
      <sourceHref>../files/StairsnoCulling.jpg</sourceHref>
      <targetHref>../files/StairsnoCulling.jpg</targetHref>
    </Alias>
    <Alias>
      <sourceHref>../files/sideturretnoCulling.jpg</sourceHref>
      <targetHref>../files/sideturretnoCulling.jpg</targetHref>
	</Alias>
.
.
.
</Model>

KMZ 아카이브 만들기

Windows 탐색기 또는 Mac Finder를 사용하여 Zip 아카이브를 만들 수 있습니다. doc.kml 파일과 관련 리소스가 포함된 폴더의 콘텐츠를 선택한 후 'WinZip > Add to Zip file ....'과 같은 옵션을 선택합니다. 또한 자바 JAR 라이브러리에는 Zip 아카이브를 프로그래밍 방식으로 만들고 추출할 수 있는 Zip 라이브러리가 있으며, Linux에는 명령줄 버전의 압축 및 압축 해제 기능이 있습니다.

참고: Zip 아카이브를 만드는 경우 doc.kml 파일이 포함된 폴더의 콘텐츠를 선택해야 하며 폴더 자체를 선택해서는 안 됩니다.

아카이브를 만든 후에는 .zip 파일 확장자를 .kmz로 변경합니다. 아카이브에서 파일을 추출하려면 .kmz 파일 확장자를 다시 .zip으로 변경하고 Zip 유틸리티를 사용하여 아카이브를 압축 해제합니다.

Google 어스 및 KMZ 아카이브

<iframe> 요소 사용

KML <description> 풍선 내에서 대부분의 HTML 요소는 표준 웹브라우저에서 처리되는 것과 동일한 방식으로 Google 어스에서 처리됩니다. 하지만 설명 풍선 내의 <iframe>은 HTML로만 처리되며, 이는 특수 KML 기능이 인식되지 않음을 의미합니다. 예를 들어 <iframe>은 KMZ 리소스를 표시할 수 없으며, <a href="#my feature;flyto">와 같은 로컬 앵커 링크가 인식되지 않습니다. <iframe> 요소 내 <src> 요소는 디스크의 로컬 파일이나 KMZ 파일 내부의 파일을 가리킬 수 없으며, 브라우저에서 방문할 수 있는 인터넷의 URL을 가리켜야 합니다.