Einzelnen Beitrag anzeigen

joacim

Registriert seit: 30. Apr 2003
Ort: Immenrode
60 Beiträge
 
Delphi 6 Professional
 
#9

AW: Openstreetmap Karte Anzeigen

  Alt 5. Mai 2022, 14:33
Hallo,
für ein geophysikalisches Auswerteprogramm wollte ich Kartendaten von Openstreetmap laden.
Mit dem embedded webbrowser hatte ich eine Lösung, die war aber chronisch unstabil.

Dann bin ich für den download der Karten auf wget.exe umgestiegen. Ich habe hier mal die
wesentlichen Schritte in einer Demo zusammengestellt. (OSMMap.exe) Der Ablauf ist wie folgt:

- Auswertung von Längen- und Breitengrad
- daraus die sog. tile number für Openstreetmap (OSM) bestimmen
- eine 3 x 3 Umgebung zu dieser tile number bestimmen
- Verwendung von wget.exe für den download
- Aufruf von wget durch createProcess, verpackt in ExecuteFile
- 9 tiles (jeweils 256x256 Pixel) als *.PNG herunterladen
- der Parameter –O bei wget definiert den Outputfile, hier in einem eigenen Subdirectory
- nach Beendigung des Downloads werden die 9 tiles zusammengeführt. (MergeBitmaps)
- für die Zusammenführung wird das PNG Format in ein Bitmap gewandelt. (PNG2BMP)
- das zusammengeführte Bild wir in einem image in einer scrollbox angezeigt.

Bei bereits gespeicherten tiles erfolgt kein erneuter Download (cache)

Im Quelltext sind die URLs der vom mir verwendeten Hilfsmittel angegeben.
Statt TImage verwende ich in dem geophysikalisches Auswerteprogramm TImage32 aus G32.
Um nicht noch mehr Abhängigkeiten zu bekommen, bleibt es hier bei TImage.

Das Ganze ist mit Delphi6 realisiert, wahrscheinlich geht mit moderneren Versionen vieles einfacher.
Angehängte Dateien
Dateityp: zip DP_OSM.zip (3,47 MB, 24x aufgerufen)
  Mit Zitat antworten Zitat