Um die Anleitung möglichst einfach zu halten, beschreibt diese nur die nötigen Schritte und geht nicht auf Anforderungen ein, die an einen öffentlich verfügbaren WMS-Dienst (das Veröffentlichen der Aerowest-Bilder ist vermutlich ohne explizite Erlaubnis sowieso verboten) zu stellen sind, wie etwa Performance und Sicherheit.
Behandelt also u.a. nicht die Erstellung von Auflösungspyramiden, Umwandlung in GeoTiffs und Tiling.
Es erfolgt keine Vorverarbeitung der Bilder um später Rechenzeit zu sparen, die Umprojektion und das Zusammenfügen der Bilder übernimmt hier direkt MapServer.
Dies spart Speicherplatz, erfordert dafür aber mehr Rechenzeit zum Ausliefern der Bilder.
Georeferenzierte Luftbilder von Aerowest herunterladen. Diese werden als ZIP-Dateien angeboten, in diesen ZIP-Dateien befinden sich jeweils eine JPEG- und die dazugehörige JGW-Datei. In der JGW-Datei befinden sich die passenden Georeferenzinformationen zu diesem JPEG-Bild. Beim Herunterladen der Bilder, wird im ECW-Viewer unten rechts der EPSG-Wert (dieser liegt im Bereich von 31466-31469) angezeigt. Dieser Wert wird nachfolgend für das Mapfile des MapServers benötigt.
Wird ein Maßstab von 1:500 gewählt, sind auch Details erkennbar. Kommt es nicht so sehr auf Details an, reicht auch ein Maßstab von 1:1000 aus.
Optional ein Verzeichnis für die MapServer-Dateien anlegen, in diesem Verzeichnis können die Konfiguration und die Bilder abgelegt werden. In dieser Anleitung wird das Verzeichniss "/mapserver" verwendet.
Die heruntergeladenen ZIP-Dateien werden z.B. in das (evtl. anzulegende Verzeichnis) "/mapserver/data" (nachfolgend Datenverzeichnis genannt) entpackt, in diesem Verzeichnis befinden sich also die jpg- und jgw-Dateien.
Einen Shapefile-Index erstellen, hierzu in das Datenverzeichnis wechseln
cd /mapserver/data
und dort folgenden Befehl ausführen:
gdaltindex -write_absolute_path bilder.shp *.jpg
Sollten nachträglich weitere Bilder hinzugefügt werden, so muss dieser Index mit dem selben Befehl neu erstellt werden.
Ein Mapfile anlegen (siehe unten), als Dateiname wird hier "/mapserver/osm.map" gewählt. Der EPSG-Wert (hier ist bisher der Platzhalter 3146x eingetragen) aus 1.) muss in Zeile 8 eingetragen werden. Wichtig sind die BeTA2007-Daten, das sind Korrekturdaten, welche eine genaue Projektion der Bilder gewährleisten sollen. Diese Datei wird hier unter "/mapserver/BETA2007.gsb" abgelegt und kann z.B. von hier heruntergeladen werden: http://crs.bkg.bund.de/crseu/crs/descrtrans/BeTA/BETA2007.gsb
Bei JOSM folgende Einstellungen vornehmen: "Merkator" unter "Bearbeiten -> Einstellungen -> Karten-Einstellungen -> Projektionsmethode" einstellen. Zum Kartenerstellen sollte die Merkator-Projektion verwendet werden, da hier Winkel nicht verzerrt dargestellt werden.
Bildebene hinzufügenUnter "Bearbeiten -> Einstellungen -> WMS/TMS" einen neuen Bilddienst hinzufügen. Als "Service-URL" wird eingetragen:
Nach einem Linksklick auf "Ebenen abfragen" wird die im Mapfile angegebene Ebenen "Luftbilder meiner Musterstadt" angezeigt, diese ist auszuwählen, woraufhin die "Bilddienst-URL" angezeigt wird, jetzt noch mit "OK" bestätigen. Siehe rechtes Bildschirmfoto.
Optional können jederzeit (z.B. nach Punkt 5) für die JPEG-Bilder jeweils Auflösungspyramiden (ovr-Dateien) erzeugt werden:
for i in *.jpg; do if ! [ -e "$i.ovr" ]; then gdaladdo --config GDAL_CACHEMAX 200 --config COMPRESS_OVERVIEW JPEG --config PHOTOMETRIC_OVERVIEW YCBCR --config INTERLEAVE_OVERVIEW PIXEL --config JPEG_QUALITY_OVERVIEW 80 -ro "$i" 2 4 6 8 16 32 64 128 256 else echo "$i.ovr existiert schon" fi done
Dies hat den Vorteil, dass MapServer die kleineren Zoomstufen deutlich schneller berechnen kann. Nachteilig hingegen ist der erhöhte Speicherplatzbedarf (ca. 50% zusätzlich). Sollten nachträglich weitere Bilder hinzugefügt werden, so muss dieser Befehl nochmals ausgeführt werden, damit die fehlenden ovr-Dateien hinzugefügt werden. Schon vorhandene ovr-Dateien werden hierbei nicht verändert oder neu erstellt. Siehe auch hier.
Windows
Als Ergänzung zur obenstehenden Anleitung, sollen hier die Windows spezifischen Schritte aufgeführt werden. Ansonsten sollte die obenstehende Anleitung ausgeführt werden. So durchgeführt unter Windows XP mit ms4w_3.0.3.zip.
In den Root eines Laufwerks entpacken (z.B. C:\ oder F:\). Ein Unterordner "ms4w" wird erstellt. Offenbar muss ms4w immer im Ordner "ms4w" direkt im Root eines Laufwerks liegen, damit es richtig funktioniert.
Apache kann entweder jedesmal manuell gestartet werden (/ms4w/Apache/bin/httpd.exe) oder als Windows Service installiert werden (/ms4w/apache-install.bat). Wenn Apache läuft, dann sollte unter http://127.0.0.1/ im Webbrowser eine Website von MS4W erscheinen.
Als Verzeichnis z.B. F:\mapserver verwenden (ggf. anpassen)
Zu 4. (Datenverzeichnis)
Als Datenverzeichnis z.B. F:\mapserver\data verwenden (ggf. anpassen)
Zu 5. (gdaltindex ausführen)
Eine Kommandozeile öffnen und /ms4w/setenv.bat ausführen, um in dieser Session die PATH-Variable um einige MS4W Ordner zu erweitern. Natürlich kann man den PATH auch dauerhaft verändern. Einfach /ms4w/tools/gdal-ogr/gdaltindex.exe direkt auszuführen reicht nicht, da z.B auch /ms4w/Apache/cgi-bin/gdal18.dll benötigt wird.
Dann wie beschrieben in den richtigen Ordner wechseln und den Befehl ausführen.
Alternativ im gleichen Ordner eine Textdatei erstellen und in z.B. run_gdaltindex.bat umbenennen und mit folgendem Code füllen:
Im Mapfile überall, wo der Unix-Pfad /mapserver/ steht, dies durch den Windows-Pfad (siehe Punkt 3) ersetzen, statt "\" dabei aber "/" verwenden (Zeilen 9, 15, 32). Beispiel:
"nadgrids=F:/mapserver/BETA2007.gsb"
Zu 7. (Service URL)
Unter Windows muss die Service-URL ebenfalls das ".exe" enthalten, der mapserver-Pfad muss auch angepasst sein:
MAP
NAME "AerowestOSM"
STATUS ON
UNITS METERS
PROJECTION
# passenden EPSG-Wert eintragen, also das "x" ersetzen
# Der Wert ist für den genwünschten Bereich ganz unten auf der Aerowestseite zu finden.
"init=epsg:3146x"
"nadgrids=/mapserver/BETA2007.gsb"
END
WEB
METADATA
"wms_title" "Aerowest Luftbilder für OSM"
"wms_onlineresource" "http://127.0.0.1/cgi-bin/mapserv?map=/mapserver/osm.map&"
"wms_srs" "EPSG:4326"
"ows_enable_request" "*"
END
END
LAYER
STATUS ON
NAME "Luftbilder_Musterstadt"
METADATA
"wms_title" "Luftbilder meiner Musterstadt"
"wms_srs" "EPSG:4326"
END
TILEITEM "location"
# Speicherort der JPEG-Bilder, JGW-Dateien und der Index-Dateien
TILEINDEX "/mapserver/data/bilder.shp"
TYPE RASTER
END
END