Unterstützung Tile Download

Hallo Zusammen,

für eine offline Karte würde ich gerne die benötigten OSM Tiles herunterladen.
Mithilfe des Tile-Calc Programm komme ich auf 24k Tiles (159MB) bis Zoomstufe 17.

Jetzt habe ich gerade mit einem ganz kleinem Testgebiet etwas rumprobiert mit dem JTileDownloader. Allerdings bekomme ich keine Tiles heruntergeladen - es erscheint hinter jedem Tile “forbidden”.

Habe mehrere Tileserver ausprobiert und auch selber Links eingefügt - ohne Erfolg.

Ich habe schon die ein oder andere Erklärung gelesen, muss aber sagen, dass ich so recht noch keinen roten Pfaden für mich erkennen kann. Möchte auch nichts falsch machen und die Server überlasten. Da falle ich mit der o.g. Datenmenge vermutl. schon drunter, oder? Hatte etwas von einer Grenze bei 6000Tiles gelesen.

Ich hoffe ihr könntet mich unterstützen die benötigten Tiles herunterzuladen.

Hallo firechhe,

die Tile Usage Policy der OSM Foundation untersagt das massenhafte Herunterladen von Tiles. Einschlägige Anwendungen und solche, die gegen die anderen Bedingungen der Tile Usage Policy verstoßen, sind deshalb grundsätzlich gesperrt.

Praktisch auch jeder Betreiber eines kostenlosen Tileserver untersagt das, weil damit einzelne auf Kosten der Allgemeinheit die verfügbaren Ressourcen unangemessen stark belasten. Wenn du Tiles systematisch für Offline-Zwecke herunterladen möchtest, musst du sie selber rendern oder diese Dienstleistung bei einem Dienstleister einkaufen.

Viele Grüße

Michael

EDIT: Link zu https://operations.osmfoundation.org/policies/tiles/ ergänzt

Wenn Du den etwas aufwendigen Weg der Einrichtung eines eigenen Tile-Servers (z.B. switch2osm.org) scheust, könnte eventuell das Programm “Maperitive” etwas für Dich sein; hiermit kannst Du ein OSM-PBF-File direkt laden und dann für einen definierten Ausschnitt Kacheln erzeugen lassen, auf Windows sowie mit Mono-Framework auf auch Mac und Linux.Die Styles sehen nicht 100% gleich aus wie OSM, aber dafür ist es wirklich recht einfach. (Download von maperitive.net)

Es ist gut, daß Du Dir vorher schon Gedanken über die Auswirkungen Deiner Downloads machst und nachfragst.

Nur noch mal zum besseren Verständnis: Tiles in den höheren Zoomleveln werden meist erst bei einer Anfrage neu berechnet. In der Größenordnung wie von Dir angegeben kann die Erzeugung der Tiles schon mal 1-2 Stunden dauern. In dieser Zeit würde der Server von Dir blockiert und Hunderte oder Tausende von “echten” Nutzern im Browser, für die der Server eigentlich gedacht ist, hätten dann quälend lange Wartezeiten. Falls das mehrere Massendownloader gleichzeitig tun ist der Server praktisch lahmgelegt wie bei einer DOS-Attacke. Deshalb ist es fast überall untersagt wo die Server privat oder von Spenden finanziert werden müssen und die Rechenleistung begrenzt ist.

Als Alternative kannst Du entweder Deinen eigenen Tileserver aufsetzen, mit Maperitive eine eigene Karte erzeugen, ersatzweise eine Garminkarte nutzen oder ein kostenpflichtiges Angebot für Offline-Nutzung wahrnehmen, das für solche Szenarien ausgelegt ist. Die gibt es z.B. bei Mapbox, bei der Geofabrik oder bei der RWK.

Mit Mapbox habe ich gestern schon etwas rumprobiert und mir gefällt das Mapbox Studio, sodass ich ich das Aussehen der Karte noch beeinflussen kann. Wie erstelle ich denn mit mapbox nun die Tiles, sodass ich sie mir anschließend (ggf kostenpflichtig) herunterladen kann?
Habe schon in verschiedensten Bereichen dort gesucht, aber kann die passende Seite nicht finden.

Ich habe nun testweise mit Maperative mal eine Karte erzeugt. Das Gebiet welches ich gerne offline anzeigen möchte schlägt mit rund 1GB Daten zu. Zoomlevel 10-19. Leider brauche ich so ein großes Zoomlevel, da auf dem Smartphone ansonsten nicht weit genug gezoomt werden kann.

Das Ziel ist es, eine offline nutzbare App auf Basis von leaflet zu entwickeln. Allerdings ist der Datenumfang von 1GB schon sehr grenzwertig.
Ich habe mal das Stichwort Vektordaten gelesen. Bringt mir das in Hinblick auf den benötigten Speicherplatz große Vorteile?

Gibt es ansonsten noch Lösungen die Datenmenge zu komprimieren, ohne auf Zoomstufen verzichten zu müssen?

Für was genau benötigst du denn die Offline-Karte? Möglicherweise bringen dich andere Alternative weiter.

Ich denke ja, jedenfalls nutzen die meisten Offline-Apps (wie zB. OSMAND) Vektordaten.

Eventuell mal gucken, wie die Freizeitkarte OSM es macht.
https://www.freizeitkarte-osm.de/android/de/index.html

Falls das nicht schon geschehen ist, kann man am Format der Tiles und deren Speicherung drehen. Die Tiles statt in einzelnen Dateien in einem Verzeichnisbaum in einer MbTiles-Datei zu speichern bringt etwas. Wenn es Tiles im PNG-Format sind, lässt sich deren Größe manchmal durch Rekompressierung verringern, z.B. mit dem Linux-Programm advpng. Aber das bringt alles keine Reduktion um Größenordnungen. Da hat man dann vielleicht 800 MB statt 1 GB.

Eine signifikante Reduktion des Datenvolumens bekommt man aber nur, wenn man mit Vektordaten arbeitet und die Karte in Echtzeit rendert, so wie das z.B. die ganzen Routing-Programme machen. Vielleicht gibt es ja eine fertige Renderingengine für Android.

Ziel ist es einen relativ quadratischen Kartenausschnitt offline bereitzustellen. Kantenlänge dieses Ausschnittes ca. 30km.
Hierrauf wiederrum würde ich gerne verschiedene Layer mit POI einblenden.

Letztlich hatte ich die Hoffnung, dass alles in HTML / JavaScript / CSS zu realisieren. Das würde mir die Möglichkeit schaffen eine hybride App zu generieren, die sowohl unter iOS und Android läuft. Vergleichbar mit mobile apps die nur im browser laufen, jedoch “richtig” installiert und offline Verfügbarkeit.

Aktuell nutze ich dafür die app maps.me. Allerdings würde ich gern hier zum einen die Darstellung der Marker ändern und nicht nur aus 6 vorgegeben Farben wählen können. Des Weiteren zeigt mapsme für die Waldfläche ein forest-icon an… Bei ca. 6000 POIs kann es da schnell zu Verwechslungen kommen.

So ganz habe ich deine Definition von Offline noch nicht verstanden. Sollen die Nutzer deiner App die Karten und POIs einmalig downloaden oder sollen sie von einem von dir betriebenen Server kommen?

Offline heißt, dass sowohl die Karte als auch die POI lokal auf dem Gerät liegen. Im Optimalfall natürlich noch, dass die Software erkennt dass neue Daten (Map Tiles / Vektordaten sowie POI) vorhanden sind und diese dann auf dem Gerät aktualisiert.

Vektor Daten sind sicherlich deutlich kleiner:
Das Saarland (sicherlich größer als 30x30km) umfasst original [.osm.pbf] 40MByte, die OSMAND Version 72.8 MByte.

Vielleicht kannst Du OSMAND (https://osmand.net/) oder Locus (https://wiki.openstreetmap.org/wiki/Locus) für Deine Zwecke nutzen / modifizieren?

Ich sehe zwei Lösungsansätze: Du könntest die Mapsforge-Library und entsprechende Offlinekarte nutzen. Dann wäre die iOS-Unterstützung aber wohl schwierig. Alternativ könntest du dir Printmaps mal ansehen. Damit kannst du große SVGs oder PDFs erzeugen. Wahlweise mit oder ohne deine POIs.

Die ist auch Open Source, https://github.com/mapsme/omim , das “kannst” du alles anpassen.