모든 준비를 마쳤습니다!

개발을 시작하려면 개발자 문서로 이동하세요.

Google Static Maps API 활성화

개발을 시작하기 위해 Google Developers Console에서 우선적으로 해야 할 일을 몇 가지 소개하겠습니다.

  1. 프로젝트 생성 또는 선택
  2. Google Static Maps API 활성화
  3. 적합한 키 생성
계속

Google Static Maps 개발자 가이드

Google Static Maps API를 사용하면 JavaScript 또는 동적 페이지를 로드하지 않고도 Google 지도 이미지를 웹 페이지에 포함할 수 있습니다. Google Static Maps API 서비스는 표준 HTTP 요청을 통해 전송된 URL 매개변수에 따라 지도를 생성하며, 웹 페이지에 표시될 수 있는 지도를 이미지로 반환합니다.

참고: Google Static Maps API 사용 제한이 변경되었습니다. API 키를 생성하고 이 키를 요청에 포함히면, Google API Console에서 사용을 추적할 수 있으며, 필요한 경우 할당량을 추가로 구입할 수 있습니다.

이 문서는 Google Static Maps API v2에 대해 상세히 설명합니다. v1 URL을 업데이트하려면 업그레이드 가이드를 참조하세요.

간단한 예시

다음 예시에는 아래 표시되어 있는 뉴욕시 다운타운의 Google Static Maps API 이미지의 URL이 포함됩니다.

https://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap
&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318
&markers=color:red%7Clabel:C%7C40.718217,-73.998284
&key=YOUR_API_KEY

남부 맨해튼의 관심 지점

이 이미지를 페이지에 표시하기 위해 "특별히" 수행할 작업이 없음을 알 수 있습니다. JavaScript는 필요 없습니다. URL을 생성하고 <img> 태그 내에 넣기만 하면 됩니다. 웹 페이지에서 이미지 배치가 가능한 곳이면 어디에나 Google Google Static Maps API를 배치할 수 있습니다.

대상

이 문서는 웹 페이지 또는 모바일 애플리케이션 내에 Google Static Maps API 이미지를 포함하기를 원하는 웹사이트 및 모바일 개발자를 위한 것입니다. 이 문서에서는 API 사용 방법과 사용 가능한 매개변수에 대한 참조 자료를 소개합니다.

개요

Google Static Maps API는 URL을 통한 HTTP 요청에 응답하여 이미지(GIF, PNG 또는 JPEG)를 반환합니다. 각 요청에 대해 지도의 위치, 이미지의 크기, 확대/축소 수준, 지도 유형, 지도상의 위치에 선택적 마커의 배치를 지정할 수 있습니다. 또한 영숫자 문자를 사용하여 마커에 레이블을 붙일 수 있습니다.

Google Static Maps API 이미지는 <img> 태그의 src 특성 내에 포함되거나, 다른 프로그래밍 언어의 동등한 태그 내에 포함됩니다. Google Static Maps API 이미지가 웹 기반 애플리케이션(예: 웹 브라우저) 밖에서 사용되는 경우에는, 웹 브라우저 또는 기본 Google 지도 애플리케이션에 표시되는 위치를 가리키는 링크를 포함해야 합니다. (Google Maps API 프리미엄 플랜 사용자에게는 이러한 요구사항이 면제됩니다.) 이러한 요구사항에 대한 전체적인 최신 내용은 Google 지도/Google 어스 서비스 약관, 섹션 10.1.1(h)를 참조하세요.

이 문서는 Google Static Maps API URL의 필수 형식과 사용 가능한 매개변수에 대해 설명합니다. 또한 URL을 지정하기 위한 몇 가지 유용한 정보도 제공합니다.

URL 매개변수

Google Static Maps API URL의 형식은 다음과 같아야 합니다.

https://maps.googleapis.com/maps/api/staticmap?parameters

웹 사이트가 HTTPS를 통해 액세스되는 경우, 브라우저 보안 경고를 피하려면 Google Static Maps API 이미지도 HTTPS를 통해 로드해야 합니다. HTTPS는 사용자 위치와 같은 중요한 사용자 정보를 포함하는 요청에도 권장됩니다.

https://maps.googleapis.com/maps/api/staticmap?parameters

HTTP를 사용하든 HTTPS를 사용하든 간에, 일부 URL 매개변수는 필수인 반면 일부 매개변수는 선택 사항입니다. URL 표준 형식과 마찬가지로, 모든 매개변수는 앰퍼샌드(&) 문자를 사용하여 구분합니다. 매개변수 및 가능한 값 목록은 아래와 같습니다.

중요: 명확성을 위해 아래의 URL 매개변수 논의에서는 이스케이프 이전의 형식으로 지정된 예시를 사용합니다. 요청을 API로 전송하기 전에, 매개변수를 적절하게 URL 인코딩해야 합니다. 예를 들어, 많은 매개변수는 파이프 문자(|)를 구분 기호로 사용하며, 이 문서 맨 위의 간단한 예시에서처럼 최종 URL에서 %7C로 인코딩되어야 합니다. 자세한 내용은 올바른 URL 빌드를 참조하세요.

Google Static Maps API는 다음 URL 매개변수를 사용하여 지도 이미지를 정의합니다.

위치 매개변수

  • center(마커가 없는 경우는 필수)는 지도의 모든 가장자리에서 동일한 거리에 있는 지도의 중심을 정의합니다. 이 매개변수는 쉼표로 구분된 {latitude,longitude} 쌍(예: "40.714728,-73.998672") 또는 문자열 주소(예: "city hall, new york, ny")로서 위치를 취하여, 지표면의 고유한 위치를 식별합니다. 자세한 내용은 아래의 위치를 참조하세요.
  • zoom(마커가 없는 경우는 필수)은 지도의 확대/축소 수준을 정의하며, 이는 지도의 확장 수준을 결정합니다. 이 매개변수는 원하는 지역의 확대/축소 수준에 해당하는 숫자값을 취합니다. 자세한 내용은 아래의 확대/축소 수준을 참조하세요.

지도 매개변수

  • size(필수)는 지도 이미지의 사각형 치수를 정의합니다. 이 매개변수는 {horizontal_value}x{vertical_value} 형식의 문자열을 취합니다. 예를 들어, 500x400은 너비 500픽셀 X 높이 400픽셀의 지도를 정의합니다. 너비가 180픽셀보다 작은 지도는 크기가 작은 Google 로고를 표시합니다. 이 매개변수는 scale 매개변수의 영향을 받으며(아래에 설명), 최종 출력 크기는 크기와 배율 값을 곱한 것입니다.
  • scale(선택 항목)은 반환되는 픽셀의 수에 영향을 미칩니다. scale=2scale=1보다 두 배 많은 픽셀을 반환하는 반면, 커버리지 영역과 상세 수준은 동일하게 유지합니다(즉, 지도의 내용은 변경되지 않습니다). 이것은 고해상도 디스플레이를 개발할 때나 인쇄용 지도를 생성할 때 유용합니다. 기본값은 1입니다. 허용되는 값은 24입니다(4는 Google Maps API 프리미엄 플랜 고객만 사용할 수 있습니다.) 자세한 내용은 확장 값을 참조하세요.
  • format(선택 항목)은 실제 이미지의 형식을 정의합니다. 기본적으로, Google Static Maps API는 PNG 이미지를 생성합니다. GIF, JPEG 및 PNG를 비롯하여 여러 가지 가능한 형식이 있습니다. 어떤 형식을 사용할지는 이미지를 표시하는 방법에 따라 달라집니다. JPEG는 일반적으로 더 나은 압축을 제공하는 반면, GIF 및 PNG는 더 나은 상세 수준을 제공합니다. 자세한 내용은 이미지 형식을 참조하세요.
  • maptype(선택 항목)은 구성할 지도의 유형을 정의합니다. roadmap, satellite, hybridterrain을 비롯하여 여러 가지 가능한 지도 유형 값이 있습니다. 자세한 내용은 아래의 Google Static Maps API 지도 유형을 참조하세요.
  • language(선택 항목)는 지도 타일상의 레이블 표시에 사용할 언어를 정의합니다. 참고로, 이 매개변수는 일부 국가 타일에만 지원됩니다. 요청된 특정 언어가 타일 집합에 대해 지원되지 않으면, 이 타일 집합의 기본 언어가 사용됩니다.
  • region(선택 항목)은 지정학적 민감도에 따라 표시할 적절한 국경선을 정의합니다. 두 문자 ccTLD('최상위 도메인') 값으로 지정된 지역 코드를 받아들입니다.

지형지물 매개변수

  • markers(선택 항목)는 지정된 위치에 이미지를 첨부할 하나 이상의 마커를 정의합니다. 이 매개변수는 파이프 문자(|)로 구분된 매개변수들이 있는 단일 마커 정의를 취합니다. 마커의 스타일이 동일하다면, 여러 개의 마커를 동일한 markers 매개변수 내에 배치할 수 있으며, markers 매개변수를 더 추가하여 다른 스타일의 마커를 더 추가할 수도 있습니다. 참고로, 마커를 지도에 제공하는 경우에는 centerzoom 매개변수를 지정할 필요가 없습니다(일반적으로는 필수). 자세한 내용은 Google Static Maps API 마커를 참조하세요.
  • path(선택 항목)는 이미지를 지정된 위치에 오버레이하기 위해 둘 이상 연결 지점의 단일 경로를 정의합니다. 이 매개변수는 파이프 문자(|)로 구분된 지점 정의의 문자열을 취합니다. path 매개변수를 더 추가하여 경로를 더 제공할 수도 있습니다. 참고로, 지도에 경로를 제공하는 경우에는 centerzoom 매개변수를 지정할 필요가 없습니다(일반적으로는 필수). 자세한 내용은 아래의 Google Static Maps API 경로를 참조하세요.
  • visible(선택 항목)은 지도상에 마커나 다른 표시기는 표시되지 않더라도 표시를 유지해야 하는 하나 이상의 위치를 지정합니다. 이 매개변수를 사용하면 특정한 지형지물이나 지도 위치가 Google Static Maps API에 나타나도록 보장합니다.
  • style(선택 항목)은 지도상의 특정 지형지물(도로, 공원 등)을 변경하여 표시하기 위해 사용자 지정 스타일을 정의합니다. 이 매개변수는 스타일을 지정할 지형지물과 선택한 지형지물에 적용할 스타일 연산 집합을 식별하는 featureelement 인수를 취합니다. style 매개변수를 추가하여 여러 스타일을 제공할 수 있습니다. 자세한 내용은 스타일 지정 지도 가이드를 참조하세요.

키 및 서명 매개변수

  • key(필수)를 사용하면 Google API Console에서 애플리케이션의 API 사용량을 모니터링하고, 넉넉한 무료 일일 할당량에 액세스하고, 필요한 경우 Google이 애플리케이션에 대해 여러분에게 문의할 수 있습니다. 자세한 내용은 키 및 서명 가져오기를 참조하세요.
  • signature(권장)는 여러분의 API 키를 사용해 요청을 생성하는 사이트가 있을 경우, 해당 사이트가 그러한 권한이 있는지 확인해주는 디지털 서명입니다. 참고: 결제를 활성화하는 경우 디지털 서명이 필요합니다. 지도 로드의 하루 무료 제한을 초과한 경우 당일 남은 시간 동안의 추가 지도 로드는 요금이 부과됩니다. 디지털 서명을 포함하지 않은 결제 가능 지도 로드는 실패합니다. 자세한 내용은 키 및 서명 가져오기를 참조하세요.

참고: Google Maps API 프리미엄 플랜 고객은 Static Maps 요청에서 API 키와 디지털 서명을 사용하거나 유효한 클라이언트 ID와 디지털 서명을 사용할 수 있습니다. 자세한 내용은 프리미엄 플랜 고객의 인증 매개변수를 참조하세요.

이전 Google Maps APIs for Work 라이선스를 보유한 고객은 요청 시 key 대신에 유효한 clientsignature 매개변수를 포함해야 합니다. 자세한 내용은 키 및 서명 가져오기 페이지의 클라이언트 ID 및 서명 섹션을 참조하세요.

URL 크기 제한

Google Static Maps API URL은 8192자로 제한됩니다. 많은 수의 마커와 경로가 포함된 복잡한 지도를 생성하지 않는다면, 실제로 URL이 이보다 더 길 필요는 없습니다. 그러나, 어떤 문자들은 API로 전송되기 전에 브라우저 및/또는 서비스에 의해 URL 인코딩이 필요할 수도 있으며, 이 결과 문자 사용량이 늘어납니다. 자세한 내용은 올바른 URL 빌드를 참조하세요.

매개변수 사용

Google Static Maps API는 매개변수화된 URL로만 구성되기 때문에 비교적 사용이 쉽습니다. 이 섹션에서는 이들 매개변수를 사용하여 URL을 구성하는 방법에 대해 설명합니다.

위치 지정

(center 매개변수 사용하여) 정확한 위치에 지도의 초점을 맞추고, (markers 매개변수 사용하여) 선택 항목인 장소 마크를 지도상의 위치에 배치하기 위해서는, Google Static Maps API가 지도상의 위치를 정밀하게 식별할 수 있어야 합니다. Google Static Maps API는 숫자(위도 및 경도 값) 또는 문자열(주소)을 사용하여 이들 위치를 지정합니다. 이들 값은 지오코딩된 위치를 식별합니다.

몇몇 매개변수(예: markerspath 매개변수)는 여러 개의 위치를 취합니다. 이런 경우에는, 파이프(|) 문자로 위치를 구분합니다.

위도 및 경도

위도 및 경도는 쉼표로 구분된 텍스트 문자열 내에 숫자를 사용하여 정의되며, 소수점 6자리의 정밀도를 가집니다. 예를 들어, "40.714728,-73.998672"는 올바른 지오코드 값입니다. 소수점 6자리를 넘는 정밀도는 무시됩니다.

경도 값은 본초 자오선인 영국 그리니치를 기준으로 거리가 정해집니다. 그리니치는 위도 51.477222에 위치하므로, center 값에 51.477222,0을 입력하여 지도 중심을 그리니치에 맞출 수 있습니다.

그리니치, 영국

위도와 경도 값은 지표면의 올바른 위치와 일치해야 합니다. 위도는 -90 ~ 90 사이의 임의 값을 취할 수 있으며, 경도는 -180 ~ 180 사이의 임의 값을 취할 수 있습니다. 잘못된 위도 또는 경도 값을 지정하면, 잘못된 요청으로 요청이 거절됩니다.

주소

대부분의 사람들은 위도와 경도를 사용하지 않고 주소를 사용하여 위치를 표시합니다. 주소를 지리적 지점으로 변환하는 과정을 지오코딩이라고 하며, 사용자가 올바른 주소를 제공하면 Google Static Maps API 서비스가 지오코딩을 수행할 수 있습니다.

위도/경도가 제공될 수 있는 모든 매개변수에서는, 그 대신 주소를 나타내는 문자열을 지정할 수도 있습니다. Google은 주소를 지오코딩하며, 마커 배치나 위치 지정에 사용되는 위도/경도 값을 Google Static Maps API 서비스에 제공합니다. 문자열은 URL-이스케이프되어야 하므로 가령 "City Hall, New York, NY"와 같은 주소는 "City+Hall,New+York,NY"로 변환되어야 합니다.

참고로, 주소는 정밀한 위치(예: 거리 주소), 폴리라인(예: 명명된 경로) 또는 폴리곤 영역(예: 도시, 국가 또는 국립 공원)을 나타낼 수도 있습니다. 폴리라인 및 폴리곤 결과의 경우, Google Static Maps API 서버는 선/영역의 중심점을 주소 중심으로 사용합니다. 주소가 어떻게 지오코딩되는지 그 방법이 확실치 않은 경우에는 이 지오코딩 유틸리티를 사용하여 주소를 테스트해 볼 수 있습니다.

다음 예시는 CA 버클리에 대한 Google Static Maps API를 생성합니다.

https://maps.googleapis.com/maps/api/staticmap?center=Berkeley,CA&zoom=14&size=400x400&key=YOUR_API_KEY

버클리, CA

확대/축소 수준

Google 지도의 지도에는 현재 뷰의 해상도를 정의하는 정수로 된 '확대/축소 수준'이 있습니다. 기본 roadmap 뷰에서는 0 (가장 낮은 확대/축소 수준: 한 지도에서 전세계를 볼 수 있음) ~ 21+ (거리와 개별 건물까지 볼 수 있음) 사이의 확대/축소 수준이 가능합니다. 확대/축소 수준 17에서는 지도에 건물 윤곽선(있는 경우)이 나타납니다. 이 값은 지역마다 다르며, 데이터가 갱신되므로 시간이 지남에 따라 값이 변경될 수 있습니다.

Google 지도에서 지구 전체를 보려면 확대/축소 수준 0을 설정합니다. 연속되는 각 확대/축소 수준은 수평 및 수직 치수에서 정밀도를 두 배로 늘려줍니다. 이 방법에 대한 자세한 내용은 Google Maps JavaScript API 문서에서 찾을 수 있습니다.

참고: 지구상의 모든 위치에서 모든 확대/축소 수준이 나타나는 것은 아닙니다. 지구에서 일부 지역의 데이터는 다른 위치의 데이터보다 더 세밀하기 때문에, 위치에 따라 확대/축소 수준이 달라집니다.

지도 타일이 없는 확대/축소 수준에 대해 요청을 전송한 경우, Google Static Maps API는 해당 위치에서 사용 가능한 최대 확대/축소 수준으로 지도를 표시하여 반환합니다.

다음 목록은 각 확대/축소 수준에서 기대할 수 있는 세밀한 정도를 보여줍니다.

  • 1: 세계
  • 5: 대륙
  • 10: 구/군/시
  • 15: 도로
  • 20: 건물

아래 예시에서는 center 값은 동일하지만 확대/축소 수준은 각각 12와 14인 맨해튼의 두 지도를 요청합니다.

https://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&key=YOUR_API_KEY
https://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=14&size=400x400&key=YOUR_API_KEY

멀리서 본 맨해튼  가까이서 본 맨해튼

이미지 크기

size 매개변수는 center와 함께 사용되어 지도의 커버리지 영역을 정의합니다. 이 매개변수는 또한 scale 값(기본값 1)으로 곱하여 지도의 출력 크기를 픽셀 단위로 정의합니다.

아래 표는 각 scale 값에서 size 매개변수에 허용되는 최대 값을 보여줍니다.

API scale=1 scale=2 scale=4
자유 640x640 640x640 (1280x1280픽셀 반환) 사용할 수 없음.
Google Maps API 프리미엄 플랜 2048x2048 1024x1024 (2048x2048픽셀 반환) 512x512 (2048x2048픽셀 반환)

아래 예시에서는 확대/축소 수준 1에서 지구 적도의 "일부분"을 요청합니다.

https://maps.googleapis.com/maps/api/staticmap?center=0,0&zoom=1&size=400x50&key=YOUR_API_KEY

적도

아래 예시에서는 동일한 지역에 중심을 둔 100 x 100픽셀 크기의 작은 지도를 요청합니다. Google 로고가 더 작게 표시됩니다.

https://maps.googleapis.com/maps/api/staticmap?center=0,0&zoom=1&size=100x100&key=YOUR_API_KEY

작은 적도 지도

배율 값

Google Static Maps API의 size 매개변수는 지도의 크기를 픽셀 단위로 정의하므로, size=200x200인 지도는 200픽셀 X 200픽셀로 반환됩니다. 일반적으로 인치당 픽셀 수가 약 100ppi인 LCD 컴퓨터 모니터에서, 200x200 지도는 각 치수 방향으로 약 2인치입니다.

그러나 픽셀 밀도 300ppi 이상인 고해상도 화면을 탑재한 모바일 기기가 점차 늘어나고 있습니다. 이 경우:

  • 200x200 픽셀 이미지의 크기는 겨우 1인치의 0.7배로 줄어들어, 레이블과 아이콘이 너무 작아서 가독성이 떨어집니다.
  • 가독성을 높이기 위해 이미지의 배율을 조정(확대/축소)하면, 이미지가 흐려지거나 모자이크 형태로 나타납니다.
너무 작음 너무 흐림

모바일 기기를 개발할 때, API의 scale 매개변수를 사용하면 더 고해상도의 지도 이미지를 반환할 수 있으므로 위의 문제가 해결됩니다. scale 값과 size를 곱하여 이미지의 실제 출력 크기를 픽셀 단위로 결정할 수 있으며, 지도의 커버리지 영역을 변경할 필요가 없습니다. (기본 scale 값은 1이며, 허용되는 값은 1, 2 및 4입니다(4는 Google Maps API 프리미엄 플랜 고객 전용).

예를 들어, 배율 값 2는 배율이 지정되지 않은 요청과 동일한 지도 커버리지 영역을 반환하지만, 각 치수에는 두 배의 픽셀이 있습니다. 여기에는 도로와 레이블이 포함되므로, 작은 크기의 고해상도 화면에서 뿐만 아니라 브라우저에서 배율 조정 시에도 가독성이 높아집니다.

150x150 150x150&scale=2

이러한 이미지는 CSS를 사용하여 높이와 너비를 설정하고 img 또는 div 태그에 삽입할 경우, 데스크톱 브라우저에서도 잘 작동합니다. 브라우저는 품질을 떨어뜨리지 않고도 이미지를 적정 크기로 줄입니다.

아래 표는 세 가지의 다른 이미지 요청을 보여줍니다.

  • 첫 번째는 배율 값이 지정되지 않은 100x100 이미지 요청입니다. 데스크톱에서는 올바로 표시되지만, 모바일 기기에서 읽기에는 너무 작습니다.
  • 두 번째는 지도 크기가 두 배로 늘어납니다. 데스크톱에서 CSS는 지도를 지정된 100x100 img 요소에 맞추지만, 이미지의 크기를 줄이면 도로와 레이블이 너무 작아집니다. 모바일 기기에서 이미지의 크기는 맞지만, 또 다시 도로와 레이블의 가독성은 떨어집니다.
  • 세 번째는 scale=2인 100x100 지도에 대한 요청입니다. 이미지가 200px의 상세 수준으로 반환되며, 데스크톱이 이미지를 완벽하게 축소하므로, 원본 100x100 요청과 구분할 수가 없습니다. 한편으로 모바일 브라우저에서는 API에 의해 반환되는 추가적인 해상도의 이점을 누릴 수 있습니다.
기기 100x100 200x200 100x100&scale=2
데스크톱
(
img 태그에서 height="100px"
width="100px")
고해상도
(시뮬레이션됨)

: Android 및 iOS와 같은 모바일 플랫폼에서 각 해상도에 대해 별도의 이미지를 지정하는 방식으로, 앱이 고해상도 화면을 지원할 수 있습니다. scale 매개변수를 사용할 경우 scale=1scale=2를 각각 설정하기만 하면, 표준 해상도 화면에 대한 지도 이미지와 고해상도 화면에 맞는 지도를 쉽게 요청할 수 있습니다.

모바일 및 고해상도 디스플레이용 개발에 대한 자세한 내용은 다음 자료를 참조하세요.

이미지 형식

다음과 같은 일반적인 여러 웹 그래픽 형식으로 이미지가 반환될 수도 있습니다: GIF, JPEGPNG. format 매개변수는 다음 값 중 하나를 취합니다.

  • png8 또는 png(기본값)는 8비트 PNG 형식을 지정합니다.
  • png32는 32비트 PNG 형식을 지정합니다.
  • gifGIF 형식을 지정합니다.
  • jpgJPEG 압축 형식을 지정합니다.
  • jpg-baseline은 비 프로그레시브 JPEG 압축 형식을 지정합니다.

jpgjpg-baseline은 일반적으로 가장 작은 이미지 크기를 제공하지만, 이를 위해 "손실이 있는" 압축을 수행하므로 이미지의 품질이 떨어질 수 있습니다. gif, png8png32는 무손실 압축을 제공합니다.

대부분의 JPEG 이미지는 프로그레시브이며, 이는 더 낮은 품질의 이미지를 더 일찍 로드하고, 더 많은 데이터가 도달함에 따라 이미지 해상도를 높이는 것을 의미합니다. 이렇게 하면 이미지를 웹 페이지에 신속하게 로드할 수 있으며, 현재 JPEG의 가장 일반적인 용도입니다. 그러나, JPEG의 일부 용도(특히 인쇄)에서는 비 프로그레시브(baseline) 이미지가 필요합니다. 이러한 경우에는 비 프로그레시브인 jpg-baseline 형식을 사용하는 것이 좋을 수 있습니다.

지도 유형

Google Static Maps API는 아래 나열된 것과 같은 여러 형식으로 지도를 생성합니다.

  • roadmap(기본값)은 일반적으로 Google 지도 웹 사이트에 나타나는 표준 도로지도 이미지를 지정합니다. maptype 값이 지정되지 않으면 Google Static Maps API는 기본적으로 roadmap 타일을 사용합니다.
  • satellite는 위성 이미지를 지정합니다.
  • terrain은 지형과 식생을 보여주는 실제적인 입체 지도 이미지를 지정합니다.
  • hybrid는 위성 및 도로지도 이미지를 혼합하여 지정하며, 주요 거리와 장소 이름의 투명 계층을 위성 이미지 위에 표시합니다.

아래 예시의 코드에서는 도로지도 유형과 지형 유형의 차이점을 알 수 있습니다.

https://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=roadmap&key=YOUR_API_KEY
https://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=terrain&key=YOUR_API_KEY

맨해튼 일반 지도  맨해튼 지형 지도

혼합 지도는 위성 이미지와 주요 도로지도 지형지물을 조합하여 지도를 생성합니다. 다음 예시에서는 위성 유형 및 혼합 지도 유형을 보여줍니다.

https://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=satellite&key=YOUR_API_KEY
https://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=hybrid&key=YOUR_API_KEY

맨해튼 위성 지도  맨해튼 지형 지도

스타일 지정 지도

스타일 지정 지도 가이드를 참조하세요.

마커

markers 매개변수는 위치 집합에서 하나 이상의 마커 집합을 정의합니다. 단일 markers 선언 내에 정의된 각 마커는 동일한 시각적 스타일을 나타내야 합니다. 다른 스타일로 마커를 표시하려면, 별도의 스타일 정보를 가진 여러 markers 매개변수를 제공해야 합니다.

markers 매개변수는 다음과 같은 형식의 값 할당 집합(마커 설명자)을 취합니다.

markers=markerStyles|markerLocation1| markerLocation2|...

markerStyles 집합은 markers 선언의 시작부에 선언되며, 파이프 문자(|)로 구분된 0개 이상의 스타일 설명자와 그 뒤에 역시 파이프 문자(|)로 구분된 하나 이상의 위치 집합으로 구성됩니다.

스타일 정보와 위치 정보는 모두 파이프 문자를 통해 구분되기 때문에, 스타일 정보가 마커 설명자에서 먼저 나타나야 합니다. Google Static Maps API 서버가 마커 설명자에서 위치를 만나면, 다른 모든 마커 매개변수도 위치로 간주됩니다.

마커 스타일

마커 스타일 설명자 집합은 파이프(|) 문자로 구분된 일련의 값 할당입니다. 이 스타일 설명자는 이 마커 설명자 내에 마커를 표시할 때 사용할 시각적 특성을 정의합니다. 이러한 스타일 설명자에는 다음과 같은 키/값 할당이 포함됩니다.

  • size:(선택 항목)는 설정된 {tiny, mid, small} 중에서 마커의 크기를 지정합니다. size 매개변수가 설정되지 않은 경우, 마커는 기본(정상) 크기로 나타납니다.
  • color:(선택 항목)는 24비트 색상(예: color=0xFFFFCC) 또는 설정된 {black, brown, green, purple, yellow, blue, gray, orange, red, white} 중에서 사전 정의된 색상을 지정합니다.

    참고로, 투명도(32비트 16진수 색상 값을 사용하여 지정)는 경로에서는 지원되지만 마커에서는 지원되지 않습니다.

  • label:(선택 항목)은 설정된 {A-Z, 0-9} 중에서 단일 uppercase 영숫자 문자를 지정합니다. (이 대문자 요구사항은 이 버전의 API에 새로 추가되었습니다.) 참고로, 기본값 및 mid 크기의 마커는 alphanumeric-character 매개변수를 표시할 수 있는 유일한 마커입니다. tinysmall 마커는 영숫자 문자를 표시할 수 없습니다.

참고: 이들 마커를 사용하는 대신, 자체 사용자 지정 아이콘을 사용할 수도 있습니다. (자세한 내용은 아래의 사용자 지정 아이콘을 참조하세요.)

마커 위치

각 마커 설명자에는 지도에 마커를 표시할 위치를 정의하는 하나 이상의 위치 집합이 포함되어야 합니다. 이들 위치는 위도/경도 값 또는 주소로 지정될 수 있습니다. 위치는 파이프 문자(|)를 사용하여 구분됩니다.

위치 매개변수는 마커의 위치를 지도에 정의합니다. 위치가 지도 밖에 있는 경우 centerzoom 매개변수가 제공되면, 이 마커는 구성된 이미지에 나타나지 않습니다. 그러나 이들 매개변수가 제공되지 않으면, Google Static Maps API 서버는 제공된 마커가 포함된 이미지를 자동으로 구성합니다. (아래의 암시적 위치 지정을 참조하세요.)

아래는 샘플 마커 선언입니다. 참고로, 우리는 한 세트의 스타일과 세 개의 위치를 정의합니다.

https://maps.googleapis.com/maps/api/staticmap?center=Williamsburg,Brooklyn,NY&zoom=13&size=400x400&
markers=color:blue%7Clabel:S%7C11211%7C11206%7C11222&key=YOUR_API_KEY

세 개의 브루클린 우편 번호

다른 스타일로 마커를 정의하기 위해, 우리는 여러 markers 매개변수를 제공해야 합니다. 이 markers 매개변수 집합은 세 개의 마커를 정의합니다. 하나는 62.107733, -145.5419의 "S" 레이블이 붙은 파란색 마커, 하나는 "Delta Junction, AK"의 작은 녹색 마커, 또 하나는 "Tok, AK"의 "C" 레이블이 붙은 중간 크기의 노란색 마커입니다. 아래 예시에서는 이러한 마커를 보여줍니다.

https://maps.googleapis.com/maps/api/staticmap?center=63.259591,-144.667969&zoom=6&size=400x400\
&markers=color:blue%7Clabel:S%7C62.107733,-145.541936&markers=size:tiny%7Ccolor:green%7CDelta+Junction,AK\
&markers=size:mid%7Ccolor:0xFFFF00%7Clabel:C%7CTok,AK"&key=YOUR_API_KEY

세 개의 알래스카 타운, 서로 다른 마커

사용자 지정 아이콘

Google의 마커 아이콘을 사용하는 대신, 자체 사용자 지정 아이콘을 자유롭게 사용할 수 있습니다. 사용자 지정 아이콘은 markers 매개변수에서 다음과 같은 설명자를 사용하여 지정합니다.

  • icon은 마커의 사용자 지정 아이콘으로 사용할 URL을 지정합니다. 이미지는 PNG, JPEG 또는 GIF 형식을 사용할 수 있지만 PNG를 권장합니다.

icon 매개변수는 URL을 사용하여 지정되어야 합니다(URL 인코딩되어야 합니다). https://goo.gl과 같은 URL 단축 서비스를 사용하여 만든 URL을 사용할 수 있습니다. 대부분의 URL 단축 서비스는 URL을 자동으로 인코딩해주는 이점이 있습니다. 아이콘 크기는 4096픽셀(정사각형 이미지의 경우 64x64)로 제한되며, Google Static Maps API 서비스에서는 요청당 최대 5개의 고유 사용자 지정 아이콘을 허용합니다. 참고로, 이 고유 아이콘은 각각 Google Static Maps API 내에서 여러 번 사용될 수 있습니다.

사용자 지정 아이콘의 앵커 지점은 이미지의 아래쪽 가운데로 설정됩니다.

다음 예시에서는 Google의 Chart API를 사용하여 사용자 지정 마커를 생성하고, 뉴욕시의 여러 커피숍을 보여줍니다.

https://maps.googleapis.com/maps/api/staticmap?size=480x480&markers=
icon:https://chart.apis.google.com/chart?chst=d_map_pin_icon%26chld=cafe%257C996600%7C
224+West+20th+Street+NY%7C75+9th+Ave+NY%7C700+E+9th+St+NY&key=YOUR_API_KEY

맨해튼 커피숍

참고: 위에서 여러 수준의 이스케이프가 혼란스러울 수 있습니다. Google Chart API에서는 파이프 문자(|)를 사용하여 URL 매개변수 내의 문자열을 구분합니다. 이 문자는 URL 내에서 적법하지 않으므로(위의 참고 참조), 올바른 차트 URL을 생성할 때 %7C로 이스케이프됩니다. 이제 그 결과가 icon 지정에 문자열로 포함되지만 여기에는 % 문자(위에 언급된 %7C에 있음)가 포함되어 있으며, 이 문자는 URL에 데이터로 직접 포함될 수 없고 %25로 이스케이프되어야 합니다. 그 결과로 URL에는 %257C가 포함되며, 이는 두 계층의 인코딩을 나타냅니다. 마찬가지로, 차트 URL에는 & 문자가 포함되며, 이 문자는 구분 기호로서 Google Static Maps API URL 매개변수에 직접 포함하면 혼란스러울 수 있으므로, 역시 인코딩되어야 합니다.

다음은 Google Static Maps API URL을 생성하는 단계입니다.

# Intended chld parameter:
chld=cafe|996600

# Embedded in a fully valid chart URL:
https://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=cafe%7C996600

# Intended icon parameter, containing a fully valid URL:
markers=icon:https://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=cafe%7C996600

# Embedded in a valid and unambiguous Google Static Maps API URL:
...&markers=icon:https://chart.apis.google.com/chart?chst=d_map_pin_icon%26chld=cafe%257C996600

Google Static Maps API 경로

path 매개변수는 경로를 통해 지도 이미지에서 오버레이에 연결되는 하나 이상의 위치를 정의합니다. path 매개변수는 다음과 같은 형식의 값 할당 집합(경로 설명자)을 취합니다.

path=pathStyles|pathLocation1|pathLocation2|...

참고로, 두 경로 지점은 파이프 문자(|)를 사용하여 서로 구분됩니다. 스타일 정보와 지점 정보는 모두 파이프 문자를 통해 구분되기 때문에, 스타일 정보가 경로 설명자에서 먼저 나타나야 합니다. Google Static Maps API 서버가 경로 설명자에서 위치를 만나면, 다른 모든 경로 매개변수도 위치로 간주됩니다.

경로 스타일

경로 스타일 설명자 집합은 파이프(|) 문자로 구분된 일련의 값 할당입니다. 이 스타일 설명자는 경로를 표시할 때 사용할 시각적 특성을 정의합니다. 이러한 스타일 설명자에는 다음과 같은 키/값 할당이 포함됩니다.

  • weight:(선택 항목)는 경로의 두께를 픽셀 단위로 지정합니다. weight 매개변수가 설정되지 않은 경우, 경로는 기본(정상) 두께(5픽셀)로 나타납니다.
  • color:(선택 항목)는 24비트(예: color=0xFFFFCC) 또는 32비트 16진수 값(예: color=0xFFFFCCFF)으로 색상을 지정하거나, 설정된 {black, brown, green, purple, yellow, blue, gray, orange, red, white} 중에서 색상을 지정합니다.

    32비트 16진수 값이 지정되는 경우, 마지막 두 문자는 8비트 알파 투명도 값을 지정합니다. 이 값은 00(완전 투명) ~ FF(완전 불투명) 사이에서 변합니다. 참고로, 투명도는 경로에서는 지원되지만 마커에서는 지원되지 않습니다.

  • fillcolor:(선택 항목)는 경로 표시가 폴리곤 영역을 벗어남을 나타내고, 또한 이 지역 내에 오버레이로 사용할 채우기 색을 지정합니다. 다음과 같은 위치 집합은 "폐쇄" 루프일 필요가 없으며, Google Static Maps API 서버가 첫 지점과 마지막 지점을 자동으로 연결합니다. 그러나, 동일한 시작 및 끝 위치를 구체적으로 제공하지 않는다면, 채워진 영역의 외부에 있는 모든 스트로크는 폐쇄되지 않을 것입니다.
  • geodesic:(선택 항목)은 요청된 경로는 지구의 곡면을 따라가는 측지선으로 해석되어야 함을 나타냅니다. false인 경우, 이 경로는 화면 공간에서 직선으로 렌더링됩니다. 기본값은 fasle입니다.

아래는 경로 정의의 몇몇 예를 나타냅니다.

  • 가는 파란선, 50% 불투명도: path=color:0x0000ff80|weight:1
  • 빨간 실선: path=color:0xff0000ff|weight:5
  • 굵은 흰색 실선: path=color:0xffffffff|weight:10

이들 경로 스타일은 선택 항목입니다. 기본 특성을 원하는 경우에는, 경로 특성의 정의를 건너뛸 수 있으며, 이 경우 경로 설명자의 첫 번째 "인수"는 첫 번째 선언된 지점(위치)으로 구성됩니다.

경로 지점

경로를 그리려면, path 매개변수에 둘 이상의 지점을 전달해야 합니다. 그러면 Google Static Maps API는 지정된 순서대로 이들 지점을 따라 경로를 연결합니다. 각 pathPoint| (파이프) 문자로 구분되어 pathDescriptor에 표시됩니다.

다음 예시에서는 뉴욕 유니온스퀘어에서 뉴욕 타임스퀘어까지 기본값 50%의 불투명도로 파란색 경로를 정의합니다.

유니온스퀘어에서 타임스퀘어까지의 경로

아래는 path 매개변수의 세부 사항입니다.

path=color:0x0000ff|weight:5|40.737102,-73.990318|40.749825,-73.987963|40.752946,-73.987384|40.755823,-73.986397

다음 예시에서는 동일한 경로를 정의하며 그 대신 100%의 불투명도로 빨간 실선을 정의합니다.

유니온스퀘어에서 타임스퀘어까지의 경로

아래는 이 path 매개변수의 세부 사항입니다.

path=color:0xff0000ff|weight:5|40.737102,-73.990318|40.749825,-73.987963|40.752946,-73.987384|40.755823,-73.986397

아래 예시에서는 맨해튼 내에 폴리곤 영역을 정의하며, 일련의 교차로를 위치로 전달합니다.

유니온스퀘어에서 타임스퀘어까지의 경로

아래는 이 path 매개변수의 세부 사항입니다.

path=color:0x00000000|weight:5|fillcolor:0xFFFF0033|8th+Avenue+%26+34th+St,New+York,NY|\
8th+Avenue+%26+42nd+St,New+York,NY|Park+Ave+%26+42nd+St,New+York,NY,NY|\
Park+Ave+%26+34th+St,New+York,NY,NY

참고로, 우리는 경로가 보이고 폴리곤 영역이 15%의 불투명도가 되도록 설정했습니다.

인코딩된 폴리라인

일련의 위치 대신에, path의 위치 선언 내에 enc: 접두사를 사용하여 경로를 인코딩된 폴리라인으로 선언할 수도 있습니다. 참고로, 인코딩된 폴리라인 경로를 지도에 제공하는 경우에는 centerzoom 매개변수를 지정할 필요가 없습니다(일반적으로는 필수).

다음 예시에서는 인코딩된 폴리라인을 사용하여 BC 도슨 크리크에서 AK 델타 정션까지의 알래스카 고속도로 코스를 나타냅니다.

https://maps.googleapis.com/maps/api/staticmap?size=400x400&path=weight:3%7Ccolor:orange%7Cenc:polyline_data&key=YOUR_API_KEY

알래스카 고속도로

표준 경로와 마찬가지로, fillcolor 인수가 path 매개변수에 전달되면, 인코딩된 폴리라인 경로도 폴리곤 영역에 경계선을 나타낼 수 있습니다.

다음 예시에서는 뉴욕 브루클린에 대한 폴리곤 영역을 나타냅니다.

https://maps.googleapis.com/maps/api/staticmap?size=400x400&path=fillcolor:0xAA000033%7Ccolor:0xFFFFFF00%7C
enc:encoded_data&key=YOUR_API_KEY

브루클린 인코딩된 폴리라인

뷰포트

visible 매개변수를 사용하여 표시 가능 위치를 지정하는 방식으로 이미지에서 뷰포트를 지정할 수도 있습니다. visible 매개변수는 기존 위치의 표시를 유지하는 방식으로 지도를 구성하도록 Google Static Maps API 서비스에 지시합니다. (이 매개변수는 기존 마커 또는 경로와 조합되어 표시 가능 지역을 정의할 수도 있습니다.) 이런 방식으로 뷰포트를 정의하면 정확한 확대/축소 수준을 지정할 필요가 없어집니다.

아래 예시에서는 MA 캠브리지의 MIT와 하버드스퀘어를 모두 포함한 지도에서 MA 보스톤에 중심을 둔 지도를 요청합니다.

https://maps.googleapis.com/maps/api/staticmap?center=Boston,MA
&visible=77+Massachusetts+Ave,Cambridge,MA%7CHarvard+Square,Cambridge,MA&size=512x512&key=YOUR_API_KEY

캠브리지 지도

지도의 암시적 위치 지정

일반적으로는, 생성된 지도의 위치 및 확대/축소 수준을 정의하려면 centerzoom URL 매개변수를 지정해야 합니다. 그러나, markers, path 또는 visible 매개변수를 제공하는 경우에는, 해당 요소의 위치 평가에 따라 Google Static Maps API가 정확한 중심과 확대/축소 수준을 암시적으로 결정하도록 할 수 있습니다.

둘 이상의 요소를 제공하는 경우에는, Google Static Maps API가 적절한 중심과 확대/축소 수준을 결정하고, 포함된 요소에 대해 충분한 여백을 제공합니다. 아래 예시에서는 CA의 샌프란시스코, 오클랜드 및 새너제이를 포함하는 지도를 표시합니다.

https://maps.googleapis.com/maps/api/staticmap?size=512x512&maptype=roadmap\
&markers=size:mid%7Ccolor:red%7CSan+Francisco,CA%7COakland,CA%7CSan+Jose,CA&key=YOUR_API_KEY

문제 해결 및 지원

Google Static Maps API 사용에 대한 자세한 내용은 지원 페이지를 살펴보세요.

Google Static Maps API는 무엇인가 잘못되고 있을 때 오류 또는 경고를 발생시킬 수 있습니다. 특히 지도에서 무엇인가 누락된 것이 보인다면 경고를 확인해야 합니다. 새 애플리케이션을 시작하기 전에 경고를 확인하는 것도 좋은 방법입니다. 참고로, 경고는 HTTP 헤더에 나타나기 때문에 즉시 명확하게 밝혀지지 않을 수 있습니다. 자세한 내용은 오류 및 경고 가이드를 참조하세요.

이전의 Google Static Maps API는 사용자 위치 파악을 위해 애플리케이션의 센서 사용 여부를 표시하는 sensor 매개변수를 포함하도록 요구했습니다. 이 매개변수는 더 이상 필요하지 않습니다.

다음에 대한 의견 보내기...

Google Static Maps API
도움이 필요하시나요? 지원 페이지를 방문하세요.