Обзор 2D-плиток

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

Пример дорожной карты Map Tiles — это просто разделение мира на индексированную сетку. Это позволяет вам получать доступ к данным карты и использовать их эффективно и динамично в нескольких картографических масштабах. API Map Tiles дает вам доступ к нескольким тематическим геоданным, включая курируемые Google:

  • Фрагменты изображений дорожной карты на основе векторных топографических данных с картографическим стилем Google.

  • Ортофотосъемка, выполненная с помощью спутниковых и воздушных камер, которые обеспечивают получение изображений Земли сверху вниз (в надире).

  • Контурные карты отмывки рельефа.

Все 2D-плитки карты имеют географическую привязку и выровнены друг с другом. Они выбираются на основе географического охвата области просмотра и уровня масштабирования. Уровни масштабирования варьируются от нуля (для просмотра мира целиком) до 22 (для просмотра улиц и кварталов).

Темы карты

Вы можете получить фрагменты карт для следующих тем.

Тема карты Описание
Дорожная карта Дороги, здания, достопримечательности и политические границы
Спутник Фотоснимки, сделанные из космоса
Местность Контурная карта, на которой показаны природные особенности, такие как растительность.

Чтобы запросить фрагменты карты из API Map Tiles, сначала необходимо запросить токен сеанса . Токен сеанса отслеживает текущее состояние вашей карты и области просмотра. При настройке токена сеанса необходимо задать значение mapType , соответствующее желаемой теме карты. Затем необходимо включить токен сеанса в каждый из ваших запросов к API Map Tiles.

Запросы информации о просмотре

Область просмотра определяет размер поля, обрамляющего мировую сцену. Запросы информации об области просмотра возвращают сведения о фрагментах карты, которые составляют текущую область просмотра. Причина, по которой вы запрашиваете информацию об области просмотра, заключается в том, чтобы избежать запроса изображений на уровнях масштабирования, которых не существует.

Например, для большинства городов доступны изображения с коэффициентом масштабирования 22, но не для океана, поскольку в этом случае на снимках будут отображаться лишь безликие синие квадраты.

Запрос области просмотра представляет собой HTTPS-запрос GET в следующей форме.

curl "https://tile.googleapis.com/tile/v1/viewport?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&zoom=zoom&north=north&south=south&east=east&west=west"

Запрос содержит следующие поля:

zoom
Уровень масштабирования области просмотра.
north , south , east , west
Самые дальние точки севера, юга, востока и запада в области просмотра, выраженные в градусах. Север и юг должны быть в диапазоне (-90,90), восток и запад должны быть в диапазоне (-180, 180). Чтобы выразить границы, пересекающие антимеридиан, запад может быть положительным (например, 170), а восток может быть отрицательным (например, -170). Все параметры обязательны.

Информация об ответах в области просмотра

Ответ viewport сообщает вам, какие области имеют изображения и на каких уровнях масштабирования. Ответ viewport information имеет следующую форму.

{
  "copyright": "Map data ©2023",
  "maxZoomRects": [
    {
      "maxZoom": 19,
      "north": 90,
      "south": -90,
      "east": 180,
      "west": -180
    },
    {
      "maxZoom": 9,
      "north": 90,
      "south": -90,
      "east": 180,
      "west": -180
    },
    {
      "maxZoom": 14,
      "north": 84.375,
      "south": -84.375,
      "east": 180,
      "west": -180
    }, ...
  ]
}

Тело ответа содержит следующие поля.

copyright
Содержит строку атрибуции, которую вы должны отобразить на карте при отображении дорожной карты и спутниковых тайлов. Для получения дополнительной информации см. Map Tiles API Policies .
maxZoomRect
Содержит массив ограничивающих прямоугольников, которые перекрываются с текущим окном просмотра. Также содержит максимальный уровень масштабирования, доступный в каждом прямоугольнике.

Функции координат плитки

Инструменты (простые функции) доступны в большинстве языков программирования для преобразования пар широта/долгота в координаты плитки на определенном уровне масштабирования. Рассмотрим следующий пример кода JavaScript, который сначала преобразует latLng в точку, а затем из точки в координаты плитки.

var TILE_SIZE = 256;

function fromLatLngToPoint(latLng) {
  var mercator = -Math.log(Math.tan((0.25 + latLng.lat() / 360) * Math.PI));
  return {
    x: TILE_SIZE * (latLng.lng() / 360 + 0.5),
    y: TILE_SIZE / 2 * (1 +  mercator / Math.PI)
  };
}

function fromLatLngToTileCoord(latLng, zoom) {
  var point = fromLatLngToPoint(latLng);
  var scale = Math.pow(2, zoom);

  return {
    x: Math.floor(point.x * scale / TILE_SIZE),
    y: Math.floor(point.y * scale / TILE_SIZE),
    z: zoom
  };
}