Visão geral dos Blocos 2D

Exemplo de roteiroOs blocos de mapa são simplesmente a divisão do mundo em uma grade indexada. Ele permite acessar e utilizar dados do mapa de maneira eficiente e dinâmica em várias escalas cartográficas. A API Map Tiles dá acesso a vários geoconjuntos de dados temáticos, incluindo os selecionados pelo Google:

  • Blocos de imagem do roteiro com base em dados topográficos vetoriais com o estilo cartográfico do Google.

  • Ortofotografia capturada por câmeras de satélite e aéreas que fornecem imagens de cima para baixo (nadir) da Terra.

  • Mapas de contorno de sombras.

Os blocos de mapa 2D são todos georeferenciados e alinhados entre si. Eles foram selecionados com base na extensão geográfica da janela de visualização e no nível de zoom. Níveis de zoom variam de zero (para visualizar o mundo inteiro) a 22 (para visualizar ruas e blocos).

Temas de mapas

É possível receber blocos de mapa para os seguintes temas de mapa.

Tema do mapa Descrição
Roteiro vias, edifícios, pontos de interesse e fronteiras políticas
Satélite Imagens fotográficas tiradas do espaço
Relevo Um mapa de contorno que mostra características naturais, como vegetação

Para solicitar blocos de mapa da API Map Tiles, primeiro é necessário solicitar um token de sessão. O token de sessão acompanha o estado atual do mapa e da janela de visualização. Quando você configurar sua sessão é necessário definir o valor mapType para corresponder ao tema do mapa que você quer. Em seguida, inclua o token de sessão em cada uma das solicitações para API Map Tiles.

Solicitações de informações da janela de visualização

A janela de visualização define o tamanho da caixa que enquadra a cena mundial. Janela de visualização As solicitações de informação retornam detalhes sobre os blocos de mapa que compõem o janela de visualização atual. O motivo pelo qual você solicita informações da janela de visualização é garantir para evitar a solicitação de imagens em níveis de zoom que não existem.

Por exemplo, a maioria das cidades tem imagens no nível de zoom 22, mas não do oceano, já que ela acabaria exibindo quadrados azuis inacessíveis.

A solicitação da janela de visualização é uma solicitação HTTPS GET no seguinte formato.

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"

A solicitação contém os seguintes campos:

zoom
O nível de zoom da janela de visualização.
north, south, east, west
Os pontos mais distantes de norte, sul, leste e oeste na janela de visualização, expressos em graus. Norte e sul devem estar no intervalo (-90,90), leste e oeste devem estar no o intervalo (-180, 180). Para expressar os limites que cruzam o antimeridiano, oeste pode ser positivo (por exemplo, 170) e leste pode ser negativo (por exemplo, -170). Tudo parâmetros são obrigatórios.

Respostas de informações da janela de visualização

A resposta da janela de visualização informa quais áreas têm imagens e em qual zoom níveis Uma resposta de informações da janela de visualização tem o seguinte formato:

{
  "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
    }, ...
  ]
}

O corpo da resposta inclui os campos abaixo.

copyright
Contém uma string de atribuição que você precisa exibir no mapa quando exibir blocos de mapas e satélites. Para mais informações, consulte a Políticas da API Map Tiles.
maxZoomRect
Contém uma matriz de retângulos delimitadores que se sobrepõem à janela de visualização. Também contém o nível de zoom máximo disponível dentro de cada retângulo.

Funções de coordenada de bloco

Ferramentas (funções simples) estão disponíveis na maioria das linguagens de programação para converter pares de latitude/longitude em coordenadas de bloco em um nível de zoom específico. Considere o seguinte exemplo de código JavaScript que primeiro converte de uma latLng a um ponto e, em seguida, de um ponto para as coordenadas de bloco.

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
  };
}