Как использовать токены сеанса с Map Tiles API

Разработчики из Европейской экономической зоны (ЕЭЗ)

Токен сеанса – это фрагмент данных (UUID), который используется в вызовах REST для идентификации сеанса – серии связанных обменов сообщениями. Токен сеанса необходимо включать во все запросы двухмерных тайлов и изображений Просмотра улиц. Он добавляется в качестве значения параметра session ко всем URL запросов.

В Map Tiles API токен сеанса представляет собой определенный набор параметров отображения. Это означает, что вам не нужно передавать набор параметров отображения с каждым запросом фрагмента. Один и тот же токен сеанса можно использовать для нескольких клиентов. В настоящее время токен сеанса действителен в течение двух недель с момента его выпуска, но это может измениться. Вы всегда можете проверить срок действия токена сеанса, посмотрев на поле expiry в ответном сообщении.

Запрос токена сеанса

Чтобы запросить токен сеанса, отправьте запрос HTTPS POST конечной точке createSession, как показано в примере ниже. Запрос должен содержать заголовок 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

Идентификатор региона Common Locale Data Repository (две заглавные буквы), который представляет физическое местоположение пользователя. Пример: US.

Необязательные поля

imageFormat
Указывает формат файла для возврата. Допустимые значения: jpeg или png. Файлы JPEG не поддерживают прозрачность, поэтому их не рекомендуется использовать для фрагментов наложения. Если вы не укажете imageFormat, то лучший формат для карточки будет выбран автоматически.
scale

Увеличивает размер элементов карты (например, названий дорог), сохраняя размер фрагмента и область охвата фрагмента по умолчанию. При увеличении масштаба также уменьшается количество меток на карте, что снижает загроможденность. Допустимые значения scale:

  • scaleFactor1x – значение по умолчанию.
  • scaleFactor2x: удваивает размер ярлыков и удаляет ярлыки незначительных объектов.
  • scaleFactor4x – увеличивает размер ярлыков в четыре раза и удаляет ярлыки второстепенных объектов.

В примерах ниже показано, как работает масштабирование элементов карты.

Коэффициент масштабирования 1x Коэффициент масштабирования 2x
Карта с коэффициентом масштабирования 1x Карта с коэффициентом масштабирования 2x
highDpi
Указывает, нужно ли возвращать фрагменты с высоким разрешением. Если коэффициент масштабирования увеличивается, то для увеличения размера фрагмента используется highDpi. Обычно увеличение коэффициента масштабирования приводит к увеличению фрагмента до изображения того же размера, что снижает качество. При использовании highDpi размер файла увеличивается, но качество сохраняется. DPI – это количество точек на дюйм. Высокое значение DPI означает, что при отрисовке фрагмента используется больше точек на дюйм, чем обычно. Если задан параметр true, то количество пикселей по горизонтали и вертикали умножается на коэффициент масштабирования (то есть на 2 или 4). Область охвата тайла остается неизменной. Этот параметр работает только со значениями scale, равными 2x или 4x. Она не влияет на тайлы масштаба 1x.
Коэффициент масштабирования 1x Коэффициент масштабирования 2x High DPI
Карта в обычном разрешении Карта, отображаемая с разрешением 2x High DPI
layerTypes

Массив значений, определяющий типы слоев, добавленных на карту. Допустимые значения:

layerRoadmap
Обязательный параметр, если в качестве типа карты указано значение terrain. Также может накладываться на карту типа satellite. Не влияет на фрагменты дорожной карты.
layerStreetview
Улицы и места, для которых доступен Просмотр улиц, выделены на карте синим цветом.
layerTraffic
Показывает текущую загруженность дорог.
styles

Массив объектов стиля JSON, которые определяют внешний вид и уровень детализации объектов карты, таких как дороги, парки и застроенные территории. Стили используются для настройки стандартной базовой карты Google. Параметр styles действителен, только если тип карты – roadmap. Полный синтаксис стилей приведен в справочнике по стилям.

overlay

Логическое значение, которое указывает, должен ли слой layerTypes отображаться как отдельный оверлей или в сочетании с базовыми изображениями. Если для этого параметра задано значение true, базовая карта не показывается. Если вы не определили layerTypes, это значение игнорируется.

Например, если запросить тип карты satellite со слоем layerRoadmap и задать для параметра overlay значение false, то будут получены фрагменты, эквивалентные типу карты hybrid, который используется в Maps JavaScript API (изображение слева). Если для тех же типов карт и слоев задать для overlay значение true, получится прозрачный фрагмент с наложением данных на карту, стилизованный для наложения на спутниковые снимки (изображение справа).

overlay: false overlay: true
Для оверлея задано значение false Для параметра overlay задано значение 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" }
      ]
    }
  ]
}

В этом примере показан оверлей, который можно комбинировать со спутниковыми снимками. В примере показаны как дорожная карта, так и наложение Просмотра улиц. В результате на карте будут отображаться названия и данные на английском языке, как в США.

Ответ токена сеанса

Ниже приведен пример тела ответа в формате JSON.

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

Ниже приведены определения полей в теле ответа.

session
Значение токена сеанса, которое необходимо включать во все запросы к Map Tiles API.
expiry
Строка, содержащая время (в секундах с начала эпохи), когда истекает срок действия токена. Токен сеанса действителен в течение двух недель с момента создания, но это правило может измениться без уведомления.
tileWidth
Ширина фрагментов в пикселях.
tileHeight
Высота элементов в пикселях.
imageFormat
Графический формат: png или jpeg.