Kartenkacheln sind einfach eine Unterteilung der Welt in ein indexiertes Raster. Sie können damit Kartendaten effizient und dynamisch in mehreren kartografischen Maßstäben abrufen und verwenden. Die Map Tiles API bietet Zugriff auf mehrere thematische Geodatensätze, darunter von Google kuratierte:
Bildkacheln für Straßenkarten, die auf topografischen Vektordaten mit dem kartografischen Stil von Google basieren.
Orthofotografien, die sowohl von Satelliten als auch von Bordkameras aufgenommen wurden und Bilder der Erde von oben (Nadir) liefern.
Höhenschattenkarten mit Konturen
2D-Kartenkacheln sind alle georeferenziert und zueinander ausgerichtet. Sie werden basierend auf der geografischen Ausdehnung des Darstellungsbereichs und der Zoomstufe ausgewählt. Die Zoomstufen reichen von null (die ganze Welt) bis 22 (Straßen und Blöcke).
Kartenthemen
Sie können Kartenkacheln für die folgenden Kartenthemen abrufen.
Kartendesign | Beschreibung |
---|---|
Roadmap | Straßen, Gebäude, Sehenswürdigkeiten und politische Grenzen |
Satellit | Fotos aus dem Weltraum |
Gelände | Eine Höhenkarte mit natürlichen Elementen wie Vegetation |
Wenn Sie Kartenkacheln von der Map Tiles API anfordern möchten, müssen Sie zuerst ein Sitzungstoken anfordern. Das Sitzungstoken überwacht den aktuellen Status Ihrer Karte und Ihres Darstellungsbereichs. Wenn Sie das Sitzungstoken einrichten, müssen Sie den Wert für mapType
so festlegen, dass er dem gewünschten Kartendesign entspricht.
Anschließend müssen Sie das Sitzungstoken in jede Anfrage an die Map Tiles API aufnehmen.
Anfragen zu Informationen zum Darstellungsbereich
Der Darstellungsbereich definiert die Größe des Felds, in dem die Weltszene dargestellt wird. Anfragen zu Darstellungsbereichsinformationen geben Details zu den Kartenkacheln zurück, aus denen der aktuelle Darstellungsbereich besteht. Sie fordern Informationen zum Darstellungsbereich an, damit Sie keine Bilder in Zoomstufen anfordern, die nicht existieren.
So sind beispielsweise für die meisten Städte Bilder in der Zoomstufe 22 verfügbar, aber nicht für den Ozean, da dort nur unkenntliche blaue Quadrate zu sehen wären.
Die Viewport-Anfrage ist eine HTTPS-GET-Anfrage im folgenden Format.
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"
Die Anfrage enthält die folgenden Felder:
zoom
- Die Zoomstufe des Darstellungsbereichs.
north
,south
,east
,west
- Die nördlichsten, südlichsten, östlichsten und westlichsten Punkte im Darstellungsbereich, ausgedrückt in Grad. „Nord“ und „Süd“ müssen im Bereich (-90,90) liegen, „Osten“ und „Westen“ im Bereich (-180, 180). Wenn Grenzen den Antimeridian kreuzen, kann „West“ positiv (z. B. 170) und „Ost“ negativ (z. B. -170) sein. Alle Parameter sind erforderlich.
Antworten zu Viewport-Informationen
Die Viewport-Antwort gibt an, in welchen Bereichen Bilder vorhanden sind und in welchen Zoomstufen. Eine Antwort mit Informationen zum Darstellungsbereich hat das folgende Format:
{
"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
}, ...
]
}
Der Antworttext enthält die folgenden Felder.
copyright
- Enthält einen Quellenangaben-String, der auf Ihrer Karte angezeigt werden muss, wenn Sie Straßenkarten- und Satellitenkacheln anzeigen. Weitere Informationen finden Sie in den Richtlinien für die Map Tiles API.
maxZoomRect
- Enthält ein Array von Begrenzungsrectanglen, die sich mit dem aktuellen Darstellungsbereich überschneiden. Enthält auch die maximale Zoomstufe, die innerhalb jedes Rechtecks verfügbar ist.
Funktionen für Kachelkoordinaten
In den meisten Programmiersprachen sind Tools (einfache Funktionen) verfügbar, mit denen sich Breiten-/Längengradpaare in Kachelkoordinaten bei einer bestimmten Zoomstufe umwandeln lassen.
Im folgenden JavaScript-Codebeispiel werden zuerst latLng
in einen Punkt und dann ein Punkt in Kachelkoordinaten umgewandelt.
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
};
}