static map mit KML / KMZ Daten drauf?

Hallo,

gibt es einen Weg, auf bestimmte Bereiche einer Karte per URL zuzugreifen, als Pixelbild abzuspeichern?

Ich habe KML-Dateien mit Waypoints und einer verlinkten KMZ-Datei, deren Inhalte ich auf die Karte zeichnen möchte.
Anbei ein Bild wie das aussehen soll (quasi eine static map). Nur eben nicht mit Google-Maps sondern OSM-Kartenmaterial, am liebsten als Cycle-Map oder Topo.

Ich habe die Staticmap-Option bei Openstreetmap gefunden (https://staticmap.openstreetmap.de), die ist aber wackelig und hat ein Referrer-Problem, nicht wirklich brauchbar. :frowning:

Danke!

static map

Bei opentopomap steht übrigens im Infotext, dass man folgend zugreifen könne: “https://{a|b|c}.tile.opentopomap.org/{z}/{x}/{y}.png”

Aber da kommen nur Fehlermeldungen oder bin ich einfach zu blöd?

Hier muss Du die richtigen Werte eintragen: https://a.tile.opentopomap.org/16/{x}/{y}.png
z.B.
https://a.tile.opentopomap.org/16/35089/22507.png

Man kann die Werte x und y berechnen, https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
oder hier nachschauen:
https://www.sammyshp.de/fsmap/#15/48.9963/12.7570

Auf gewünschten Ausschnitt zoomen, Mouseclick rechts ergibt die entsprechende OSM Kachel.

Großartig, danke! Mir fehlte es an der Berechnung - daher kamen immer Fehlermeldungen. Supersache! :smiley:

Kennst Du http://umap.openstreetmap.fr/de/ ?
Da geht das Ganze mit ein paar Klicks.

Sehr schön … kannst Du mir sagen, was das a/b/c in der URL bedeutet? An der Ansicht ändert das scheinbar nichts?!

{a|b|c}.tile.opentopomap.org

Das sind 3 Server, um die Last zu verteilen.

Danke - verstehe.

Nun da das einsammeln der Tiles für bestimmte Gebiete und das Zusammensetzen funktioniert, möchte ich auf diese Kacheln die Wegpunkte aus einem KML zeichnen. Und scheitere nach viel Probiererei. Das liegt vorrangig daran, dass ich die Positionen in den Dezimalzahlen nicht auf Bildkoordinaten übersetzt bekomme … der Nullpunkt einer Pixelgrafik ist 0,0 links oben. Muss ein Punkt darauf weiter nach rechts und nach unten, erhöhen sich x bzw. y entsprechend. Bei den Positionsdaten ist das nicht zwingend so. Wandert ein Wegpunkt z.B. in den Alpen nach rechts, wird der entsprechende LON-Wert kleiner … dafür muss es ein Umrechnungssystem geben. Kann jemand helfen?

P.S. am besten wäre es natürlich, wenn mir der Tile-Server die Grafiken schon draufsetzt, bevor ich die Kacheln lade, aber dazu konnte ich nichts finden.

Was hast du mit den Karten vor? Benötigst du den Tileserver nur um ein PNG zu erzeugen?

Wenn Du das wirklich zu Fuß machen und damit das Rad neu erfinden möchtest, sind in
https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
sicherlich die richtigen Formeln zu finden.

OpenLayers https://openlayers.org/ und Leaflet https://leafletjs.com/examples.html bieten für derartige Sachen umfangreiche Bibliotheken an. Durch kleine Code-Ergänzungen/Modifikationen kann dabei OpenLayers auch auf lokale Tile zurückgreifen.

Ganz ohne Programmierung geht es mit http://umap.openstreetmap.fr/de/ mit einer großen Auswahl von Tile-Servern.
Ob man da eigene Tiles verwenden kann, weiß ich allerdings nicht.

Danke, Openlayers and Leaflets und diverse Server machen das alle ganz schön: allerdings eben im Browser eines Nutzers. Das steht nicht zur Verfügung, da es ein Script ist, dass die Tiles abfragt.

Ich schaue mal bei den Formeln …

Im Prinzip ja. Wie gesagt, im Idealfall zeichnet der Tileserver mir das KML drauf, bevor ich die Kacheln abrufe.
Am Ende soll ein PNG rauskommen, dass ich mir für diverse KML abspeichern will. So wie oben abgebildet.

schau dir mal Printmaps an: http://printmaps-osm.de:8080/

Und lass dich nicht durch das Wort “Webservice” abschrecken. Die eigentliche Arbeit wird in einem Batch/Script (CLI) angestoßen, also ohne GUI.

. großformatige Karten in Druckqualität
. verschiedene Kartenstile (osm-carto, osm-carto-ele20, schwarzplan+, …)
. verschiedene Dateiformate (png, pdf, svg)
. Kartendaten verfügbar für die gesamte Erdoberfläche
. benutzerdefinierte Zusatzelemente (Rahmen, Gitter, Legende, Maßstabsbalken, …)
. benutzerdefinierte Datenobjekte (gpx, kml, shape, geojson, csv, …)
. wählbare Kartenabbildung (EPSG:3857, EPSG:32632, EPSG:27700, EPSG:2056, …)

Gruss
walter

Wow. Wieso ist mir das nicht früher untergekommen?! Irgendwie scheint mir, dass es für OSM eine Menge Zeug gibt, aber man findet es einfach schlecht. :expressionless:

Schade ist, das Printmap keine topografische Karte anbietet. Ich könnte mir wohl auch die Umgebung auf meinem Webserver entsprechend einrichten, z.B. Python mit dem Mapnik-Modul versehen und das ganze darüber lösen. Aber mir wäre ein einfaches PHP-Script lieber.

Mir kam gerade noch die Idee, mir von dem Printmap-Server nur die KML-Daten rendern zu lassen und das dann auf das Kartenmaterial vom TopoServer zu legen … vielleicht ist das eine Lösung. :confused: