Omówienie kart 2D

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Przykład mapyFragmenty mapy to po prostu podział świata na indeksowaną siatkę. Umożliwiają one wydajny i dynamiczny dostęp do danych mapy oraz 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, które zostały wybrane przez Google:

  • Fragmenty mapy drogowej oparte na wektorowych danych topograficznych ze stylem kartograficznym Google.

  • Ortofotomapy wykonane przez kamery satelitarne i lotnicze, które dostarczają obrazy Ziemi z góry (nadir).

  • Mapy cieniowania.

Fragmenty mapy 2D są georeferencyjne i wyrównane względem siebie. Są 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 pobierać fragmenty mapy dla tych motywów mapy.

Motyw mapy Opis
Mapa drogowa Drogi, budynki, ciekawe miejsca i granice polityczne
Satelita Zdjęcia wykonane z kosmosu
Teren Mapa warstwicowa przedstawiająca 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 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, która otacza scenę świata. Żądania informacji o widocznym obszarze zwracają szczegóły dotyczące fragmentów mapy, które składają się na bieżący widoczny obszar. Żądasz informacji o widocznym obszarze, aby uniknąć żądania obrazów na poziomach powiększenia, które nie istnieją.

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

Żądanie widocznego obszaru 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 widocznym obszarze, wyrażone w stopniach. 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 południk 180°, zachód może być dodatni (np. 170), a wschód – ujemny (np. -170). Wszystkie parametry są wymagane.

Odpowiedzi na żądania informacji o widocznym obszarze

Odpowiedź na żądanie informacji o widocznym obszarze informuje, które obszary mają obrazy i na jakich poziomach powiększenia. Odpowiedź na żądanie informacji o widocznym obszarze ma tę 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 fragmenty 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 fragmentów mapy

W większości języków programowania dostępne są narzędzia (proste funkcje), które umożliwiają konwersję par szerokości i długości geograficznej na współrzędne fragmentów mapy na określonym poziomie powiększenia. Przeanalizuj ten przykładowy kod JavaScript, który najpierw konwertuje 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
  };
}