Omówienie kart 2D

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Przykład mapy drogowejFragmenty mapy to po prostu podział świata na indeksowaną siatkę. Umożliwia to wydajny i dynamiczny dostęp do danych mapy i ich wykorzystywanie w różnych skalach kartograficznych. Interfejs Map Tiles API zapewnia dostęp do wielu tematycznych zbiorów danych geograficznych, w tym do tych opracowanych przez Google:

  • Kafelki z obrazami map drogowych oparte na wektorowych danych topograficznych ze stylizacją kartograficzną Google.

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

  • Mapy konturowe z cieniowaniem terenu.

Wszystkie fragmenty mapy 2D są georeferencyjne i wzajemnie dopasowane. Są one wybierane na podstawie zasięgu geograficznego widocznego obszaru i poziomu powiększenia. Poziomy powiększenia wahają się 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:

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

Aby wysyłać żądania dotyczące kafelków mapy do interfejsu Map Tiles API, musisz najpierw poprosić o token sesji. Token sesji śledzi bieżący stan mapy i obszaru widocznego. Podczas konfigurowania tokena sesji musisz ustawić wartość mapType tak, aby pasowała do wybranego motywu mapy. Następnie musisz uwzględnić token sesji w każdym żądaniu wysyłanym do interfejsu Map Tiles API.

Żądania informacji o widocznym obszarze

Widoczny obszar określa rozmiar ramki, w której wyświetlana jest scena świata. Żądania informacji o widocznym obszarze zwracają szczegóły dotyczące kafelków mapy, które składają się na bieżący widoczny obszar. Informacje o obszarze widoku są potrzebne, aby uniknąć wysyłania żądań dotyczących 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 obszaru widoku to żądanie HTTPS GET w tej 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 widoku wyrażone w stopniach. Wartości północ i południe muszą mieścić się w zakresie (-90,90), a wartości wschód i zachód w zakresie (-180, 180). Aby określić granice przekraczające południk zerowy, zachód może być dodatni (np. 170), a wschód ujemny (np. -170). Wszystkie parametry są wymagane.

Odpowiedzi dotyczące informacji 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 obszarze wyświetlania 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 atrybucji, który musisz wyświetlać na mapie, gdy wyświetlasz kafelki mapy drogowej i satelitarnej. Więcej informacji znajdziesz w zasadach interfejsu Map Tiles API.
maxZoomRect
Zawiera tablicę prostokątów ograniczających, które nakładają się na bieżący obszar widoku. Zawiera też maksymalny poziom powiększenia dostępny w każdym prostokącie.

Funkcje współrzędnych kafelków

W większości języków programowania dostępne są narzędzia (proste funkcje), które umożliwiają konwertowanie par szerokości i długości geograficznej na współrzędne kafelków na określonym poziomie powiększenia. Rozważmy ten przykładowy kod JavaScript, który najpierw przekształca wartość a latLng w punkt, a potem w współrzędne kafelka.

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