Map Tiles API로 세션 토큰 사용

세션 토큰은 관련 메시지 교환의 일련인 세션을 식별하기 위해 REST 호출에서 사용되는 데이터 (UUID)입니다. 2D 타일 및 스트리트 뷰 이미지에 대한 모든 요청에 세션 토큰을 포함해야 합니다. 모든 요청 URL에 추가된 session 매개변수의 값으로 포함합니다.

Map Tiles API에서 세션 토큰은 정의된 디스플레이 옵션 집합을 나타냅니다. 즉, 각 타일 요청과 함께 표시 옵션 집합을 전달할 필요가 없습니다. 여러 클라이언트에서 동일한 세션 토큰을 사용할 수 있습니다. 세션 토큰은 현재 발급 시점부터 2주 동안 유효하지만 변경될 수 있습니다. 언제든지 응답 메시지의 expiry 필드를 확인하여 세션 토큰의 만료 시간을 확인할 수 있습니다.

세션 토큰 요청

세션 토큰을 요청하려면 다음 예와 같이 createSession 엔드포인트에 HTTPS POST 요청을 보냅니다. Content-Type: application/json 헤더를 사용하여 요청을 전송해야 합니다.

curl -X POST -d '{
  "mapType": "streetview",
  "language": "en-US",
  "region": "US"
}' \
-H 'Content-Type: application/json' \
"https://tile.googleapis.com/v1/createSession?key=YOUR_API_KEY"

필수 입력란

mapType

기본 지도 유형입니다. 이 값은 다음 중 하나일 수 있습니다.

roadmap
표준 Google 지도 페인팅 지도 타일입니다.
satellite
위성 이미지
terrain
지형 이미지 terrain를 지도 유형으로 선택할 때는 layerRoadmap 레이어 유형 (선택사항 필드 섹션에 설명)도 포함해야 합니다.
streetview
스트리트 뷰 파노라마입니다. 자세한 내용은 스트리트 뷰 카드를 참고하세요.
language

타일에 정보를 표시하는 데 사용되는 언어를 지정하는 IETF 언어 태그입니다. 예를 들어 en-US는 미국에서 사용되는 영어를 지정합니다.

region

사용자의 실제 위치를 나타내는 공통 언어 데이터 저장소 지역 식별자 (대문자 2자리)입니다. 예를 들면 US입니다.

선택적 필드

imageFormat
반환할 파일 형식을 지정합니다. 유효한 값은 jpeg 또는 png입니다. JPEG 파일은 투명도를 지원하지 않으므로 오버레이 타일로 권장되지 않습니다. imageFormat를 지정하지 않으면 카드에 가장 적합한 형식이 자동으로 선택됩니다.
scale

기본 카드의 카드 크기와 노출 영역을 유지하면서 도로 라벨과 같은 지도 요소의 크기를 확대합니다. 배율을 높이면 지도에서 레이블의 수도 줄어들어 불필요한 정보가 줄어듭니다. 유효한 scale 값은 다음과 같습니다.

  • scaleFactor1x: 기본값입니다.
  • scaleFactor2x: 레이블 크기를 두 배로 하고 부차적인 지형지물 레이블을 삭제합니다.
  • scaleFactor4x: 레이블 크기를 네 배로 하고 부차적인 지형지물 레이블을 삭제합니다.

다음 예는 지도 요소의 크기 조절 효과를 보여줍니다.

배율 1x 배율 2x
배율 1x를 보여주는 지도 배율 2배를 보여주는 지도
highDpi
고해상도 타일을 반환할지 여부를 지정합니다. 배율이 증가하면 highDpi가 사용되어 카드 크기가 커집니다. 일반적으로 배율을 높이면 결과 타일이 동일한 크기의 이미지로 확대되어 품질이 저하됩니다. highDpi를 사용하면 결과 크기도 증가하여 품질이 유지됩니다. DPI는 인치당 도트를 나타내며, DPI가 높다는 것은 타일이 평소보다 인치당 더 많은 도트를 사용하여 렌더링된다는 뜻입니다. true인 경우 각 x 및 y 크기의 픽셀 수를 배율 인수 (예: 2x 또는 4x)로 곱합니다. 타일의 노출 영역은 변경되지 않습니다. 이 매개변수는 scale 값이 2x 또는 4x인 경우에만 작동합니다. 1x 크기 타일에는 영향을 미치지 않습니다.
배율 1x 배율 2x 높은 DPI
일반 해상도로 표시된 지도 2배 고DPI 해상도로 표시된 지도
layerTypes

지도에 추가된 레이어 유형을 지정하는 값 배열입니다. 유효한 값은 다음과 같습니다.

layerRoadmap
terrain을 지도 유형으로 지정한 경우 필요합니다. 선택적으로 satellite 지도 유형에 겹칠 수도 있습니다. 로드맵 타일에는 영향을 미치지 않습니다.
layerStreetview
지도에 파란색 윤곽선을 사용하여 스트리트 뷰가 지원되는 거리와 위치를 표시합니다.
layerTraffic
현재 교통 상황을 표시합니다.
styles

도로, 공원, 건물 밀집 지역과 같은 지도 지형지물의 모양 및 세부 수준을 지정하는 JSON 스타일 객체의 배열입니다. 스타일은 표준 Google 기본 지도를 맞춤설정하는 데 사용됩니다. styles 매개변수는 지도 유형이 roadmap인 경우에만 유효합니다. 전체 스타일 문법은 스타일 참조를 참고하세요.

overlay

layerTypes를 개별 오버레이로 렌더링할지 아니면 기본 이미지와 결합할지 지정하는 불리언 값입니다. true인 경우 기본 지도가 표시되지 않습니다. layerTypes를 정의하지 않은 경우 이 값은 무시됩니다.

예를 들어 layerRoadmap 레이어와 함께 satellite 지도 유형을 요청하고 overlayfalse로 설정하면 Maps JavaScript API에 사용되는 hybrid 지도 유형과 동일한 타일이 생성됩니다 (왼쪽 이미지). overlaytrue로 설정한 동일한 지도 및 레이어 유형을 사용하면 위성 이미지 위에 오버레이하기에 적절하게 스타일이 지정된 지도 오버레이가 포함된 투명한 타일이 생성됩니다(오른쪽 이미지).

overlay: false overlay: true
오버레이가 false로 설정됨 오버레이가 true로 설정됨

다음 JSON은 필수 필드와 선택사항 필드가 모두 포함된 일반적인 요청 본문의 예입니다.

{
  "mapType": "satellite",
  "language": "en-US",
  "region": "us",
  "layerTypes": [ "layerRoadmap", "layerStreetview" ],
  "overlay":  true,
  "scale": "scaleFactor1x",
  "styles": [
    {
      "stylers": [
        { "hue": "#00ffe6" },
        { "saturation": -20 }
      ]
    },{
      "featureType": "road",
      "elementType": "geometry",
      "stylers": [
        { "lightness": 100 },
        { "visibility": "simplified" }
      ]
    }
  ]
}

이 예는 위성 이미지와 조합하는 데 적합한 오버레이를 제공합니다. 이 예에는 도로 지도와 스트리트 뷰 오버레이가 모두 포함되어 있습니다. 결과 지도에는 미국에서 사용되는 영어로 이름과 데이터가 렌더링됩니다.

apiOptions: 적용할 추가 옵션을 지정하는 값 배열입니다. 지원되는 옵션은 다음과 같습니다.

  • MCYJ5E517XR2JC - 새로운 지도 스타일을 선택합니다. 선택 기간에는 이 값이 지정되지 않는 한 요청에 기존 스타일이 적용됩니다.

세션 토큰 응답

다음 JSON은 응답 본문의 예입니다.

{
  "session": "IgAAAHGU9jnAU4KOAfwY3Bcd6eH_WxQsyocSBAdUnAr9pnvTTNXtF9c_27RBo94ytEXTDg",
  "expiry": "1361828036",
  "tileWidth": 256,
  "tileHeight": 256,
  "imageFormat": "png"
}

다음 목록에는 응답 본문의 필드에 대한 정의가 포함되어 있습니다.

session
모든 Map Tiles API 요청에 포함해야 하는 세션 토큰 값입니다.
expiry
토큰이 만료되는 시간 (epoch 이후의 초 단위)을 포함하는 문자열입니다. 세션 토큰은 생성된 시간부터 2주 동안 유효하지만 이 정책은 예고 없이 변경될 수 있습니다.
tileWidth
타일의 너비(단위: 픽셀)입니다.
tileHeight
타일의 높이(단위: 픽셀)입니다.
imageFormat
이미지 형식(png 또는 jpeg)입니다.