Eigenes WMS: Geoserver vs Mapserver

Hi,

nachdem für die Aerowest-Luftbilder neulich die Vorteile eines eigene WMS-Servers deutlich wurden, habe ich mich ein wenig damit beschäftigt.

Für die Alternativen Geoserver und Mapserver habe ich hier

http://wiki.openstreetmap.org/wiki/User:Ajoessen/Geoserver
http://wiki.openstreetmap.org/wiki/User:Ajoessen/Mapserver

Anleitungen zur Installation und Betrieb zusammengeschrieben. Neben den Luftbildern kann man auch shapefiles und Postgis-Datenbanken einbinden.

Betriebssystem wie üblich Windows XP.

Falls jemand bei schlechtem Wetter nichts besseres zu tun hat…

Gruß,
ajoessen

Hey danke für deine Mühe :slight_smile:

Wer übringens noch ein wenig mehr Geo Kram braucht unter Windows, der fährt mit dem os4geow Installer sehr gut, der die ganzen Abhängigkeiten berücksichtigen kann
http://trac.osgeo.org/osgeo4w/

Achtung:
Damit fehlt dann aber die BeTA 2007 Korrektur, oder?
Denn JOSM macht nur eine BeTA 2007 Korrektur, wenn als Projektionsmethode “Gauß Krüger” eingestellt wurde und Geoserver macht das hier auch nicht.

Gruß,
Mondschein

Da stecke ich nicht so im Detail drin. Ich weiß auch nicht, ob Aerowest beim Georeferenzieren seiner Luftbilder diese Korrektur vorgenommen hat oder nicht.

gruß,
ajoessen

Nein, denn der Fehler entsteht erst bei der Umrechnung von EPSG 3146x in EPSG 4326 (WGS84).
Dieser, durch die Umrechnung entstandene, Fehler wird mit Hilfe der BeTA2007-Korrekturdaten (eigentlich gedacht für ETRS89, aber egal) auf unter einen Meter verkleinert.

Wenn du JOSM auf WGS84 umstellst, dann musst du die Korrektur irgendwo vornehmen, da JOSM nicht weiß, dass überhaupt eine Korrektur notwendig ist, denn Geoserver/MapServer liefern die Daten an JOSM dann direkt als EPSG 4326.
D.h. in diesem Fall muss Geoserver/MapServer (oder du) die Korrektur vorgenommen haben, was aber hier beim Geoserver nicht der Fall ist → Fehler.

Wenn du hingegen bei JOSM die “Gauß Krüger”-Projektionsmethode einstellst, dann bekommt JOSM die Bilder direkt als EPSG 3146x vom Geoserver/MapServer.
JOSM muss die Daten aber in EPSG 4326 umwandeln, da der OSM-Server die Daten so haben möchte.
JOSM weiß also, dass die Bilder in EPSG 3146x vorliegen und wendet dann automatisch die BeTA2007-Korrekturdaten an.

Kurz:
Stellst du bei JOSM “Gauß Krüger” ein, so darf zuvor keine Korrektur erfolgen, denn JOSM macht das automatisch.
Stellst du bei JOSM “WGS84” ein, so muss JOSM korrigierte Bilder geliefert bekommen, das musst du bzw. Geoserver/MapServer machen, bei meiner Anleitung für MapServer übernimmt das MapServer, bei deiner Anleitung für Geoserver wird das hingegen nicht gemacht.

Hast du denn die Ergebnisse nicht durch das Setzen von Testpunkten überprüft?
Dann wäre dir der Versatz aufgefallen.

Gruß,
Mondschein

Einen Versatz habe ich immer, egal ob Luftbilder von Aerowest, Bing oder GPX-Track.
Bei bing hast du den sogar quer durch den Ort Simmerath in der Eifel.
Daher weiß ich ja nicht, was “richtig” ist.
Amtliche Koordinaten habe ich nicht zur Verfügung.

Edit: Josm kann ich nicht auf Gauß-Krüger umstellen, da ich immer noch die tested verwende.

Gruß,
ajoessen

Nein, so war das nicht gemeint!
Es darf keinen Versatz zwischen den Aerowest-Bildern geben, egal welche Methode du verwendest.
Das Ergebnis muss immer deckungsgleich sein, wenn du deine verschiedenen Methoden unter Verwendung der Aerowest-Bilder vergleichst!
Es geht hier um den Vergleich zwischen den selben Aerowest-Bildern, nicht zwischen Aerowest und Bing oder Aerowest und GPS.

Die Aerowest-Bilder haben eine sehr hohe Genauigkeit, im Gegensatz zu Bing.

Gruß,
Mondschein

In diesem Fall wird der Umrechnungsfehler nie (mit Hilfe der BeTA2007-Korrekturdaten) verkleinert, da hier weder Geoserver, noch JOSM korrigiert (und du vermutlich im Preprozessing der Bilder auch nicht, zumindest hast du dazu nichts geschrieben).

Gruß,
Mondschein

Ne du :wink:

Gauss-Krüger ist dann notwendig bei JOSM, wenn Du die Bilder direkt per PicLayer laden willst.

Im “WMS”-Modus nimmt JOSM stets 4326 an, egal was der “WMS-Server” propagiert :wink:

Ciao,
Frank

Das kann durchaus sein, ändert aber bzgl. der Korrektur nichts, da die Reihenfolge egal ist.
Wenn in JOSM “Gauß Krüger” eingestellt ist, dann darf Geoserver/MapServer zuvor keine BeTA2007-Korrektur vorgenommen haben, da diese dann zweimal erfolgen würde, einmal durch Geoserver/MapServer und einmal durch JOSM, das wäre dann einmal zu viel und damit wieder falsch. :slight_smile:

Gruß,
Mondschein

Außerdem ist diese Aussage falsch!
JOSM fordert die Daten in EPSG:3146x an und bekommt diese auch so!
Ich habe das eben überprüft.

http://127.0.0.1/cgi-bin/mapserv?map=/mapserver/osm.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=Luftbilder_Musterstadt_3146x&bbox=a,b,c,d&srs=EPSG:3146x&width=500&height=500

Ersetzungen a,b,c,d und x wurden von mir vorgenommen.

Gruß,
Mondschein

Theoretisch richtig, praktisch nicht :wink:

Wenn Du einen WMS-Service (bzw. TMS) nutzen willst, solltest Du “Merkator” einstellen.
Stelle ich jedoch “Gauss-Krüger” ein und verwende z. B. “Bing” dann kommt die Fehlermeldung:
TMS-Ebenen unterstützen die Projektion EPSG:31468 nicht.
EPSG:4326 und Mercator-Projektion werden unterstützt
Bitte Projektion ändern oder die Ebene entfernen

Bei einen eigenen lokalen WMS-Server hast Du 2 (3) Möglichkeiten:
(a) Die Umrechnung vom WMS-Server vornehmen zu lassen: “EPSG:irgendwas → 4326”
(b) Die Bilder per gdal_warp (aut simile) vorher umprojezieren lassen, sodass der “WMS-Server” nur “4326 → 4326”, also “direkt” ausliefert.
(c) Die Bilder liegen schon in 4326 vor → wie Fall (b)

:slight_smile:

Ciao,
Frank

Doch, auch praktisch.

Allgemein so nicht richtig.

Richtig, Bing liefert kein “Gauß-Krüger”.

Es gibt eine weitere Möglichkeit, so wie oben von mir beschrieben!
Du kannst JOSM auf “Gauß-Krüger” einstellen und deinen lokalen WMS-Server ausschließlich EPSG:3146x ausliefern lassen!

Gruß,
Mondschein

Gut dass Du nachgeschaut hast :slight_smile:

Ich kannte bisher nur das (alte) Verhalten.

Werde heute abend das - wenn ich mehr Zeit habe - noch gegen-testen.

Bei “TMS” ist es auf jedenfall so, wie ich geschrieben haben, siehe Beispiel oben mit “Bing”.

Ggf. müssen wir das Wiki auch noch anpassen.
Wäre ja schön, wenns so wär => weniger toosl => weniger Fehlermöglichkeiten :slight_smile:

Ciao,
Frank

Gerne. :slight_smile:
Ich verwende diese Methode übrigens hier schon seit über einer Woche. :slight_smile:

Gute Idee, ich wollte das schon machen, habe das aber bisher unterlassen, da ich keine Verwirrung verursachen bzw. zu viele verschieden Methoden anbieten wollte.
Nach dem Motto “Halte es einfach”.
Da jetzt aber ajoessen mit dem Geoserver ankam und dabei die BeTA2007-Korrektur vergessen hatte, musste ich gezwungenermaßen eingreifen. :wink:

Da JOSM inzwischen die BeTA2007-Korrektur kann, lässt sich jetzt auch Geoserver mit den Aerowest-Bildern verwenden, falls (und nur dann) man eben in JOSM als Projektionsmethode “Gauß-Krüger” einstellt.
Denn Geoserver kann keine BeTA2007-Korrektur, jedenfalls ist es mir bisher nicht gelungen, das bei diesem einzurichten.

Das mit dem Geoserver finde ich deshalb gut, weil er einfach über eine GUI einzurichten ist (auch unter Windows) und man keinen separaten Webserver (wie z.B. Apache) benötigt.

Gruß,
Mondschein

N’abend,

Cool, gestestet und es funkionokelt. I stand corrected :slight_smile:

Es ist nicht unbedingt eine Webserver a la Apache vonnöten, es geht auch mit Sven Geggus’ “100-Zeilen” simplewms.py.
Benötigt wird lediglich python (und python-mapscript) - was - zugegebenermaßen - auf einer WWW (Wald und Wiesen Windows) Installation wohl eher selten anzutreffen sein wird.

Ciao,
Frank

:slight_smile:

Damit nicht nur wir etwas davon haben:
http://blog.gegg.us/2010/11/a-wms-server-in-about-100-lines-of-code/

Gruß,
Mondschein

Ich habe das soeben getestet, ist mir zu langsam.
lighttpd probiere ich bald aus. :slight_smile:

Gruß,
Mondschein

So, Lighttpd läuft jetzt bei mir hervorragend. :slight_smile:

Kurze Anleitung:

  1. lighttpd installieren, unter Debian:

    apt-get install lighttpd
    
  2. /etc/lighttpd/lighttpd.conf anpassen:
    Im Bereich “server.modules” den Eintrag “mod_fastcgi” hinzufügen.
    Und am Ende der Datei:

    fastcgi.server = ( "/maps" =>
                        ( "localhost" =>
                            (
                              "socket" => "/tmp/mapserver-fastcgi.socket",
                              "check-local" => "disable",
                              "bin-path" => "/usr/lib/cgi-bin/mapserv",
                              "min-procs" => 1,
                              "max-procs" => 6,
                              "max-load-per-proc" => 4,
                              "idle-timeout" => 20
                            )
                        )
                     )
    
  3. Die Service-URL für JOSM lautet:
    http://127.0.0.1/maps?map=/mapserver/osm.map&

  4. Das Mapfile muss entsprechend angepasst werden:

    "wms_onlineresource"    "http://127.0.0.1/maps?map=/mapserver/osm.map&"
    

Gruß,
Mondschein