지오태깅 사진을 Google Earth에 추가하는 법

Google Earth는 사진 안에 들어 있는 GPS 좌표를 읽지 않습니다. 지오태그가 붙은 JPEG를 끌어다 놓아도 아무 일도 일어나지 않습니다. 그 파일에 담긴 위치가 이 프로그램에게는 보이지 않기 때문입니다. 지오태그된 사진을 Google Earth에 추가하려면 먼저 KML로 변환해야 합니다. Google Earth가 실제로 읽는 형식이며, 좌표를 사진 안이 아니라 사진 옆에 함께 담고 다니는 형식입니다.
이 한 가지 사실이 여기서 부딪히는 거의 모든 문제를 설명합니다. 사진 없이 나타나는 핀도, 움직이기를 거부하는 타임라인도 마찬가지입니다. 아래 단계에서는 변환을 먼저 다루고, 그 뒤에 어긋나는 세 가지를 다룹니다.
Google Earth가 사진에서 실제로 읽는 것
아무것도 없습니다. KML과 그 압축 형태인 KMZ를 읽고, 목록은 그것으로 끝입니다. 가장 분명한 근거는 이 주제에 대한 Google 자신의 튜토리얼입니다. 사진을 여는 대신, 먼저 이미지에서 좌표를 뽑아내는 스크립트를 써서 지오태그된 사진을 KML로 변환하는 과정을 설명합니다.
그 좌표는 사진의 EXIF 블록에 들어 있으며, 무엇을 변환하기 전에 알아 둘 만한 방식으로 저장됩니다. 위도와 경도는 항상 양수로 기록됩니다. 적도의 어느 쪽인지, 본초자오선의 어느 쪽인지는 따로 보관되는데, 한 글자짜리 기준 필드에 담깁니다. 위도는 N 또는 S, 경도는 E 또는 W입니다.
변환 과정에서 이 한 글자를 잃으면 숫자는 그대로 남는데 핀만 반대쪽 반구에 떨어집니다. "내 사진이 바다 한가운데 있다"는 고전적인 상황이 바로 이것입니다. 한 묶음을 변환하기 전에 그 파일이 이미 무엇을 담고 있는지 확인해서 변환할 것이 있기는 한지부터 아십시오.
지오태그된 사진을 Google Earth에 추가하는 방법
순서대로 다섯 단계입니다. 2단계는 아직 위치가 없는 사진에만 해당합니다.
- 폴더 전체를 변환하기 전에 사진 한 장을 열어 위도와 경도가 있는지 확인합니다.
- 좌표가 없는 사진은 먼저 좌표를 사진 안에 기록합니다.
- 각 사진의 GPS 블록을 읽는 변환 도구로 폴더를 KMZ로 변환합니다.
- KMZ를 더블클릭하거나 File 다음 Open을 거쳐 Google Earth에서 엽니다.
- 불러온 레이어를 My Places로 끌어다 놓아 재시작 후에도 남아 있게 합니다.
데스크톱 프로그램과 웹에서 쓰는 Google Earth 모두 KML과 KMZ 파일을 엽니다. KMZ는 열리는데 사진이 나타나지 않는다면, 원인은 거의 언제나 다음 절에 있습니다.
KMZ 파일 안에 실제로 들어 있는 것
KMZ는 평범한 ZIP 압축 파일입니다. Google 문서는 이를 주 KML 파일에 보조 파일들을 Zip 유틸리티로 함께 묶은 것이라고 설명하며, 직접 확인해 볼 수도 있습니다. 파일을 복사하고 확장자를 .zip으로 바꾼 뒤 열어 보십시오.
안에는 최상위에 KML 파일 하나가 있는데 관례상 doc.kml이라는 이름이며, 사진을 담은 하위 폴더가 함께 있습니다. KML은 사진 자체를 담지 않습니다. 좌표와 각 이미지를 가리키는 경로를 담을 뿐이며, Google의 안내는 그 경로를 압축 파일의 기준 폴더에 대한 상대 경로로 유지하라는 것입니다.
여기서 두 가지 규칙이 따라 나오는데, 둘 중 어느 쪽을 어겨도 같은 증상이 나타납니다. 핀을 열면 깨진 이미지 아이콘만 보이는 증상입니다.
- 내보내기 후에 사진 이름을 바꾸지 마십시오. KML은 여전히 예전 파일 이름을 가리키고 있으며, 아무런 경고도 주지 않습니다.
- 모든 것이 폴더 한 단계 더 깊이 들어가도록 다시 압축하지 마십시오. 이제 모든 상대 경로가 엉뚱한 곳에서 시작합니다.
두 개의 내보내기 결과를 합치려는 사람을 걸려 넘어지게 하는 규칙이 하나 더 있습니다. Google 문서는 압축 파일 안에 KML 파일은 하나뿐이라고 밝히며, Google Earth는 처음 발견한 것을 쓰고 그 뒤의 것은 무시합니다. KMZ 두 개를 합치면 핀은 절반만 남고 오류 메시지는 하나도 나오지 않습니다.
사진이 땅바닥에 붙어 있는 이유
고도가 기록된 사진도 대개는 지형 위에 납작하게 놓이는데, 이는 결함이 아니라 기본값입니다. KML은 높이를 고도 모드로 제어하며 기본값은 clampToGround입니다. KML 레퍼런스는 이를 고도 지정을 무시하고 항목을 지형에 덮어 씌우라고 Google Earth에 지시하는 값으로 정의합니다. 기록된 높이는 읽힌 뒤 버려집니다.
다른 값인 absolute는 아래 지형의 실제 표고와 상관없이 항목을 해수면 기준으로 배치합니다. 해결책처럼 들리고, 해수면에서 찍은 사진이라면 실제로 그렇습니다. 고지대 마을에서 찍은 사진이라면 그렇지 않은 경우가 많습니다. 파일 속 높이는 해수면에서 잰 값이고, Google Earth의 지면은 자체 지형 모델에서 오기 때문에, 핀이 풍경 위에 떠 있기는커녕 그 아래 묻혀 버릴 수 있습니다.
Google의 튜토리얼은 이 논의를 대체로 탁상공론으로 만드는 주의사항을 덧붙입니다. 많은 기기가 고도를 아예 추적하지 않고 그냥 0으로 설정합니다. 변환 과정에서 무언가를 잃었다고 단정하기 전에 파일 하나를 확인해 보십시오.
사진 묶음을 타임라인으로 만들기
이것이야말로 이 모든 수고를 가치 있게 만드는 기능이자, 대부분의 변환이 아무 말 없이 제공하지 못하는 기능입니다. Google 문서는 분명히 밝힙니다. Google Earth가 시간 요소를 가진 피처가 담긴 KML 파일을 열면 시간 슬라이더를 표시합니다. 슬라이더를 끌면 사진이 촬영된 순서대로 나타나고, 멈춰 있던 핀 무리가 다시 재생할 수 있는 여정으로 바뀝니다.
이것이 실패하는 이유는 사진 속 날짜와 KML이 원하는 날짜가 서로 맞지 않는 형식으로 적혀 있기 때문입니다.
| 어디에 있는가 | 어떻게 적히는가 |
|---|---|
| 사진 속, 촬영 일시로서 | 2005:10:12 16:05:56 |
| Google Earth가 읽는 KML 속 | 2007-01-14T21:05:02Z |
사진은 날짜 구성 요소 사이에 콜론을 쓰고 시간대가 없습니다. KML은 하이픈과, 날짜와 시각 사이의 T, 그리고 시간대 표시를 원합니다. 사진의 날짜를 고쳐 쓰지 않고 그대로 옮기는 변환 도구는 Google Earth가 아무 불평 없이 불러오면서도 절대 슬라이더에 올리지 않는 파일을 만듭니다. 오류도 없고, 그저 타임라인만 없습니다. 핀에 슬라이더가 없다면 이것부터 확인하십시오.
핀이 말해 주지 않는 것
Google 튜토리얼은 건너뛰기 쉬우면서도 기억해 둘 만한 주의사항으로 끝납니다. 카메라에 내장된 GPS 수신기가 언제나 정확하지는 않습니다. 많은 기기가 고도를 전혀 기록하지 않습니다. 그리고 파일 속 좌표가 표시하는 것은 카메라가 서 있던 곳이지 카메라가 향하던 대상이 아닙니다. 10킬로미터 떨어진 곳에서 찍은 산 사진은 봉우리가 아니라 골짜기에 핀을 찍습니다.
이와 맞물린 빈틈은 방향입니다. 위치만으로는 렌즈가 어느 쪽을 향했는지 전혀 알 수 없어서, 한 지점에서 반대 방향으로 찍은 두 장은 지도 위의 핀이 되는 순간 구별할 수 없게 됩니다. 어떤 카메라는 좌표 옆에 나침반 방위를 함께 기록하지만, 흔한 폴더에 담긴 휴대폰 사진 대부분은 그렇지 않습니다.
이 가운데 무엇도 지도를 틀리게 만들지는 않지만, 지도가 무엇을 증명하는지의 한계를 정합니다. 한 무더기의 핀을 믿기 전에 파일이 실제로 무엇을 저장하고 있는지 알고 싶다면 위치가 사진 안에 어떻게 저장되는지가 밑바탕이 되는 태그를 다루며, 어떤 이미지에서든 좌표를 다시 꺼내 핀이 떨어진 자리와 비교해 볼 수 있습니다.



