Problem mit Mapserver

Hi !

für die LB von Aerowest habe ich mir zwei Mapserver aufgesetzt für den 2. bzw. 3. GK-Streifen auf LW C bzw. D - je nach Bedarf wollte ich dann den einen oder anderen Starten. Die Einrichtung des Mapservers ist nach http://wiki.openstreetmap.org/wiki/DE:Installation_und_Verwendung_von_MapServer_f%C3%BCr_Aerowest_Luftbilder erfolgt.

Mit dem 3. Streifen funktioniert das auch wunderbar - beim zweiten hingegen gar nicht. JOSM ist bei mir 4453.

Die Map-Datei hänge ich unten einmal ran.

Wenn ich bei der Einrichtung von WMS-Diensten in JOSM http://127.0.0.1/cgi-bin/mapserv.exe?map=/mapserver/jan_osm.map& eintrage dann kann ich 31467 und 4326 auswählen und mir dazu auch erfolgreich die Bereichsgrenzen anzeigen lassen.

Wenn ich nun in JOSM mir die Ebene einblenden lassen will, dann bekomme ich nur Rote Kacheln. Da der Index ja generiert wurde müßte doch eigentlich etwas kommen.

Setze ich die o.g. Url im Browser ab, dann bekomme ich folgende Meldung:
mapserv(): Web application error. Traditional BROWSE mode requires a TEMPLATE in the WEB section, but none was provided.

Josm liefert im Protokoll:
Image couldn’t be fetched: http://127.0.0.1/cgi-bin/mapserv.exe?map=/mapserver/j
an_osm.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=Luf
tbilder_Dithmarschen_4325&SRS=EPSG:4326&WIDTH=500&height=500&BBOX=9.1203420,54.2
121961,9.1238257,54.2142332
at org.openstreetmap.josm.io.imagery.WMSGrabber.fetch(WMSGrabber.java:83
)
at org.openstreetmap.josm.io.imagery.Grabber.attempt(Grabber.java:81)
at org.openstreetmap.josm.io.imagery.Grabber.run(Grabber.java:67)
at java.lang.Thread.run(Unknown Source)
java.lang.Exception: <?xml version=‘1.0’ encoding=“ISO-8859-1” standalone=“no” ?

msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the LAYERS parameter.

Kann mir einer weiterhelfen ?

Gruß Jan :slight_smile:

Nun noch die Map-Datei:
MAP
NAME “AerowestOSM”
STATUS ON
UNITS METERS

   PROJECTION
       # passenden EPSG-Wert eintragen, also das "x" ersetzen
       "init=epsg:31468"
       # "nadgrids=/mapserver/BETA2007.gsb"
   END

WEB
METADATA
“wms_title” “Aerowest Luftbilder für OSM”
“wms_onlineresource” “http://127.0.0.1/cgi-bin/mapserv.exe?map=/mapserver/jan_osm.map&
#“wms_onlineresource” “http://127.0.0.1/cgi-bin/mapserv.exe?map=/mapserver/osm.map&
“wms_srs” “EPSG:4326”
“ows_enable_request” “*”
END
END

LAYER
STATUS ON
NAME “Luftbilder_Musterstadt_4326”

   PROJECTION
       # passenden EPSG-Wert eintragen, also das "x" ersetzen
       "init=epsg:31468"
       "nadgrids=/mapserver/BETA2007.gsb"
   END

   METADATA
       "wms_title"    "Luftbilder meiner Musterstadt 4326"
       "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

LAYER
STATUS ON
NAME “Luftbilder_Musterstadt_31468”

   PROJECTION
       # passenden EPSG-Wert eintragen, also das "x" ersetzen
       "init=epsg:31468"
   END

   METADATA
       "wms_title"    "Luftbilder meiner Musterstadt 31468"
       "wms_srs"    "EPSG:31468"
   END

   TILEITEM "location"
   # Speicherort der JPEG-Bilder, JGW-Dateien und der Index-Dateien
   TILEINDEX "/mapserver/data/bilder.shp"
   TYPE RASTER

END

END

Das Mapfile sieht gut aus. :slight_smile:

Also existiert der von JOSM angeforderte Layer in der Map-Datei nicht.

Das sind deine beiden Layer aus der Map-Datei:

Und diesen Layer fordert JOSM von MapServer an:

Den gibt es in deiner Map-Datei nicht.
Vielleicht ist der zugehörige WMS-Eintrag in JOSM noch von einem deiner vorherigen Versuche, passt also nicht zu deiner aktuellen Map-Datei?

edit:

Es reicht übrigens ein MapServer mit zwei Map-Dateien (z.B. jan_osm_1.map und jan_osm_2.map) aus.
Welches Mapfile du ansprechen möchtest, sagst du MapServer dann über die WMS-URL, also z.B.

http://127.0.0.1/cgi-bin/mapserv.exe?map=/mapserver/jan_osm_1.map&

Und

http://127.0.0.1/cgi-bin/mapserv.exe?map=/mapserver/jan_osm_2.map&

Gruß,
Mondschein

Es geht noch einfacher. Du nimmst nur eine map-File und packst die unterschiedlichen Projektionen in eigene Layer. Dann noch ein GROUP und Du kannst alle Layer auf einmal mit JOSM über die Gruppe abfragen und musst nicht je nach Gebiet wechseln

LAYER
STATUS ON
NAME “Luftbilder_Musterstadt_31468”
GROUP “Luftbilder Musterstadt”
PROJECTION

       "init=epsg:31468"
   END

und

LAYER
STATUS ON
NAME “Luftbilder_Musterstadt_31xxx”
GROUP “Luftbilder Musterstadt”
PROJECTION

       "init=epsg:31xxx"
   END

Danke für den Tipp. :slight_smile:

Gruß,
Mondschein

Hi !

ich werde mir das heute abend mal näher ansehen - ich arbeite nur mit zwei mapservern um die bilder in den unterschiedlichen streifen zu trennen.

aber funktionieren muss es ja auch irgendwie. melde mich ansonsten wieder.

gruß jan :slight_smile:

Geht. Hier mal ein Screenshot von mir. Du kannst sowohl die ganze Gruppe (hier German) oder nur ein einzelnes Layer auswählen. Das ist nur eine Mapfile und nur ein Mapserver und wenn Du ein Layer pro Streifen machst, kannst Du es auch weiterhin trennen.

Hi !

habe jetzt nochmal gesucht und den Namen berichtigt - jetzt funktioniert alles.

Danke für die Hilfe.

Gruß Jan :slight_smile: