Maps JavaScript API에서는 다음 좌표계를 사용합니다.
- 전 세계에서 고유하게 한 지점을 참조하는 위도 및 경도 값. Google은 세계 측지 시스템 WGS84 표준을 사용합니다.
- 지도의 한 지점을 고유하게 참조하는 세계 좌표
- 특정 확대/축소 수준에서 지도의 특정 픽셀을 참조하는 픽셀 좌표
- 특정 확대/축소 수준에서 지도의 특정 타일을 참조하는 타일 좌표
세계 좌표
API는 세계의 한 위치를 지도상의 위치로 변환해야 할 때마다 먼저 위도와 경도 값을 세계 좌표로 변환합니다. 변환에는 메르카토르 투영법이 사용됩니다.
픽셀 좌표를 계산하기 쉽도록(아래 참조), 확대/축소 수준이 0인 지도를 기본 타일 크기의 단일 타일이라고 가정합니다. 그런 다음 확대/축소 수준 0의 픽셀 좌표에 대한 세계 좌표를 정의하고, 메르카토르 투영법을 사용하여 위도 및 경도를 이 기본 타일의 픽셀 위치로 변환합니다. 해당 세계 좌표는 지도 투영의 원점에서 특정 위치까지 측정한 부동 소수점 값입니다. 이 값은 부동 소수점이므로, 현재 표시되는 지도 이미지의 해상도보다 훨씬 더 정확할 수 있습니다. 즉, 세계 좌표는 현재 확대/축소 수준과 무관합니다.
Google 지도에서 세계 좌표는 메르카토르
투영의 원점(경도 180도와 위도 약 85도에 있는
지도의 북서쪽 모서리)에서 측정되어
동쪽(오른쪽)을 향해 x 방향으로 증가하고
남쪽(아래쪽)을 향해 y 방향으로 증가합니다. 기본적인
메르카토르 Google 지도 타일은 256x256픽셀이므로
사용 가능한 세계 좌표 공간은 {0-256}, {0-256}입니다.
![]()
참고로 메르카토르 투영법은 경도로는 너비가 한정되어 있지만 위도로는 높이에 제한이 없습니다. Google에서는 메르카토르 투영법을 활용하여 약 +/-85도로 기본 지도 이미지를 잘라 결과로 표시되는 지도 모양을 정사각형으로 만듭니다. 이런 방식으로 타일 선택에 더 쉬운 로직을 적용하게 됩니다. 예를 들어 극점에서 매우 가까운 곳에 좌표를 그리면, 기본 지도의 사용 가능한 좌표 공간 바깥에 세계 좌표가 생성될 수 있습니다.
픽셀 좌표
픽셀 좌표는 특정 확대/축소 수준에서 지도의 특정 픽셀을 참조하는 반면, 세계 좌표는 지정된 투영에서의 절대 위치를 나타냅니다. 픽셀 좌표는 다음 공식으로 계산됩니다.
pixelCoordinate = worldCoordinate * 2zoomLevel
위 방정식에서 확대/축소 수준이 증가할 때마다
x 및 y 방향으로
두 배씩 커집니다. 그러므로 확대/축소 수준이 한 단계 높아지면
이전 수준보다 해상도가 4배 증가합니다. 예를 들어 확대/축소 수준이 1이면
지도는 256x256 픽셀 타일 4개,
즉 512x512의 픽셀 공간으로 구성됩니다. 확대/축소 수준 19에서 지도의 x 및 y 픽셀은
각각 0~256 * 219 값으로
참조될 수 있습니다.
세계 좌표는 지도의 타일 크기에 기반하므로, 픽셀 좌표의 정수 부분을 보면 현재 확대/축소 수준에서 해당 장소의 정확한 픽셀을 알아낼 수 있습니다. 확대/축소 수준이 0일 경우 픽셀 좌표는 세계 좌표와 같습니다.
이러한 좌표 시스템은 각 확대/축소 수준에서 지도에 위치를 정확히 나타냅니다. Maps JavaScript API는 확대/축소 수준, 지도의 중심(LatLng 값), 포함된 DOM 요소의 크기를 고려하여 표시 영역을 생성하고 이 경계 상자를 픽셀 좌표로 변환합니다. 그런 다음 API가 지정된 픽셀 경계 내에 있는 모든 지도 타일을 논리적으로 판별합니다. 타일 좌표를 사용하여 이러한 각 지도 타일을 참조하면 지도 이미지의 표시가 크게 단순화됩니다.
타일 좌표
높은 확대/축소 수준에서는 API가 모든 지도 이미지를 한 번에 로드할 수 없습니다. 대신 각 확대/축소 수준의 이미지를 지도 타일 집합으로 분할합니다. 이 타일 집합은 애플리케이션이 사용할 수 있는 순서대로 논리적으로 정렬됩니다. 지도가 새 위치나 새 확대/축소 수준으로 스크롤되면 API는 픽셀 좌표를 사용하여 필요한 타일을 확인한 다음 해당 값을 검색할 타일 집합으로 변환합니다. 이 타일 좌표는 주어진 지점에서 어느 타일이 이미지를 포함하는지 쉽게 판별할 수 있는 스키마를 사용하여 할당됩니다.
Google 지도의 타일은 픽셀과 동일한 원점에서부터
번호가 매겨집니다. Google에서 구현한 메르카토르 투영법의 경우
원점 타일은 항상 지도의 북서쪽 모서리에 있으며,
x 값은 서쪽에서 동쪽으로 갈수록 증가하고
y 값은 북쪽에서 남쪽으로 갈수록 증가합니다. 타일의 색인은
해당 원점에서부터 x,y 좌표를 사용하여 생성됩니다. 예를 들어
확대/축소 수준 2에서 지구가 16개의 타일로 나뉘면
각 타일은 다음과 같이 고유한 x,y 쌍으로 참조될 수 있습니다.

픽셀 좌표를 타일 크기(256)로 나누고 그 결과값에서 정수 부분을 가져오면 현재 확대/축소 수준의 타일 좌표를 추가로 얻을 수 있습니다.
예
다음 예에는 일리노이주 시카고의 좌표(위도/경도 값, 세계 좌표, 픽셀 좌표, 타일 좌표)가 표시되어 있습니다. 확대/축소 컨트롤을 사용하여 다양한 확대/축소 수준의 좌표 값을 확인하세요.
좌표가 계산된 방식을 보려면 코드를 확인하세요.