OSMTileProxy ist ein Caching-Proxy für Kartenkacheln von Openstreetmap oder einem anderen Kartenkachelanbieter.
Es macht den Endpunkt /tiles/{provider}/{level:int}/{x:int}/{y:int} verfügbar und gibt ein Bild für gegebene Kachelkoordinaten zurück. Zuerst lädt es eine Kachel vom Anbieter, speichert sie im Festplatten-Cache und verwendet dieses Bild dann, bis es abläuft.
Der Konfigurationsabschnitt Tiles
in appsettings.json
enthält alles, was für Proxying und Caching erforderlich ist.
"Tiles": {
"Cache": "/var/www/tiles",
"Providers": [
{
"Id": "osm",
"Url": "https://tile.openstreetmap.org/{0}/{1}/{2}.png",
"UserAgent": "Your-user-agent",
"ContentType": "image/png",
"UseWebp": false,
"MinZoom": 1,
"MaxZoom": 19
}
]
}
Nachfolgend finden Sie eine Erläuterung der Abschnittsparameter.
Cache
– Ordner, in dem Kacheln zwischengespeichert werden. In der Entwicklungskonfiguration appsettings.Development.json
ist es c:temptiles. Stellen Sie sicher, dass c:temp vorhanden ist, oder geben Sie einen anderen Speicherort an.
Providers
– Array von Anbieterparametern.
Providers:[i]:Id
– beliebige Kennung des Anbieters, die im Endpunkt verwendet wird, zum Beispiel /osm/2/1/1.
Providers:[i]:Url
– Anbieter-Endpunktmuster, wobei {0} die Ebene (Kartenzoom), {1} – die X-Koordinate einer Kachel und {2} – die Y-Koordinate einer Kachel ist.
Providers:[i]:UserAgent
– ist für den Openstreetmap-Dienst obligatorisch. Geben Sie Ihren eindeutigen User-Agent an.
Providers:[i]:ContentType
– Wert des Content-Type-Headers als Antwort. Wenn UseWebp
(siehe unten) true
ist, wird dieser Header immer auf image/webp gesetzt.
Providers:[i]:UseWebp
– optionaler Parameter (Standardwert ist false
). Bei true
konvertiert OSMTileProxy Kachelbilder in das WebP-Format.
Providers:[i]:MinZoom
– optionaler Parameter (Standardwert ist 1). Gibt die minimale Zoomstufe für den Kachelanbieter an, die zur Validierung verwendet wird.
Providers:[i]:MaxZoom
– optionaler Parameter (Standardwert ist 19). Gibt die maximale Zoomstufe für den Kachelanbieter an, die zur Validierung verwendet wird.
Bei Bereitstellung als Docker-Container binden Sie beispielsweise das Cache-Verzeichnis an Ihren Container
docker run -p 8080:8080 --name osmtileproxy -v /var/www/tiles:/var/www/tiles -d osmtileproxy:latest