Omówienie kart 2D

Deweloperzy z Europejskiego Obszaru Gospodarczego

Przykładowa mapa drogowaFragmenty mapy to po prostu podział świata na indeksowaną siatkę. Umożliwia on wydajny i dynamiczny dostęp do danych mapy oraz ich wykorzystanie w różnych skalach kartograficznych. Map Tiles API zapewnia dostęp do wielu tematycznych zbiorów danych geograficznych, w tym do zbiorów danych Google:

  • Kafelki obrazów mapy drogowej oparte na wektorowych danych topograficznych ze stylem kartograficznym Google.

  • Ortofotografie wykonane przez kamery satelitarne i lotnicze, które dostarczają zdjęcia Ziemi z góry (nadir).

  • Mapy konturowe z cieniowaniem.

Wszystkie fragmenty mapy 2D są georeferencyjne i dopasowane do siebie. Są one wybierane na podstawie zasięgu geograficznego widocznego obszaru i poziomu powiększenia. Poziomy powiększenia mieszczą się w zakresie od 0 (aby wyświetlić cały świat) do 22 (aby wyświetlić ulice i bloki).

Motywy mapy

Możesz pobrać kafelki mapy dla tych motywów mapy.

Motyw mapy Opis
Plan drogi, budynki, ciekawe miejsca i granice polityczne;
Satelita Zdjęcia wykonane z kosmosu
Teren Mapa konturowa, która pokazuje elementy naturalne, takie jak roślinność

Aby poprosić o fragmenty mapy z interfejsu Map Tiles API, musisz najpierw poprosić o token sesji. Token sesji śledzi bieżący stan mapy i widocznego obszaru. Podczas konfigurowania tokena sesji musisz ustawić wartość mapType, aby pasowała do wybranego motywu mapy. Następnie musisz dołączyć token sesji do każdego żądania wysyłanego do interfejsu Map Tiles API.

Prośby o informacje o widocznym obszarze

Widoczny obszar określa rozmiar pola, które obejmuje scenę świata. Żądania informacji o widocznym obszarze zwracają szczegóły dotyczące kafelków mapy, które tworzą bieżący widoczny obszar. Informacje o obszarze roboczym są potrzebne, aby uniknąć żądania zdjęć na poziomach powiększenia, które nie istnieją.

Na przykład większość miast ma zdjęcia na poziomie powiększenia 22, ale nie ocean, ponieważ wyświetlałyby się tylko niebieskie kwadraty bez żadnych szczegółów.

Żądanie dotyczące widocznego obszaru to żądanie HTTPS GET w następującej postaci:

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"

Żądanie zawiera te pola:

zoom
Poziom powiększenia widocznego obszaru.
north, south, east, west
Najbardziej wysunięte na północ, południe, wschód i zachód punkty w obszarze widoczności, wyrażone w stopniach. Wartości północ i południe muszą mieścić się w zakresie (-90,90), a wschód i zachód – w zakresie (-180, 180). Aby wyrazić granice przekraczające antymerydian, zachód może być dodatni (np. 170), a wschód ujemny (np. -170). Wszystkie parametry są wymagane.

Odpowiedzi z informacjami o widocznym obszarze

Odpowiedź dotycząca widocznego obszaru informuje, które obszary mają zdjęcia i na jakich poziomach powiększenia. Odpowiedź z informacjami o widocznym obszarze ma następującą postać.

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

Treść odpowiedzi zawiera te pola.

copyright
Zawiera ciąg znaków z informacjami o autorstwie, który musisz wyświetlać na mapie, gdy wyświetlasz kafelki mapy drogowej i satelitarnej. Więcej informacji znajdziesz w zasadach dotyczących interfejsu Map Tiles API.
maxZoomRect
Zawiera tablicę prostokątów ograniczających, które nakładają się na bieżący widoczny obszar. Zawiera też maksymalny poziom powiększenia dostępny w każdym prostokącie.

Funkcje współrzędnych mapy

W większości języków programowania dostępne są narzędzia (proste funkcje) do konwertowania par szerokości i długości geograficznej na współrzędne mapy na określonym poziomie powiększenia. Rozważmy ten przykładowy kod JavaScript, który najpierw konwertuje obiekt latLng na punkt, a następnie punkt na współrzędne mapy.

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