Skalierbare Beschriftung

Daniel Goetz madprof at gmx.ch
Tue Jun 27 09:42:16 EDT 2006


Liebe Mapbender-Gemeinde,

ich habe ein Problem mit der dynamischen Skalierung von Beschriftungen bei meinem WMS-Dienst. Ich verwende eine lokale Mapserver-Installation (ms4w-Packet Vers. 1.5.3) und habe Mapbender Version 2.2.1 auf meinem Rechner installiert. Der Mapbender funktioniert auch im großen und ganzen (Shapedatein, Rasterdatein, Oracle-Spatial) recht gut bzw. bediene ich ihn richtig. Nur wenn es um die Skalierung von Beschriftungen geht funktioniert das eben nicht.

Mein .map-file für den WMS-Dienst mit skalierbarer Beschriftung sieht folgendermaßen aus:

MAP
	NAME "Beschr_Test"
	EXTENT 426666.49 466058.21 448321.44 490754.58
	SIZE 700 900
	SHAPEPATH "/ms4w/Apache/htdocs/Oracle/daten"
	FONTSET ../fonts/fonts.list
	IMAGETYPE PNG
	IMAGECOLOR 255 255 255
	UNITS METERS
	STATUS ON
	RESOLUTION 72

	PROJECTION
		"init=epsg:4326"
	END

	WEB
		IMAGEPATH "/ms4w/apache/htdocs/tmp/"
		IMAGEURL "/tmp/"
		TEMPLATE "template_daniel2.html"
		METADATA
			WMS_Title "Beschr_Test"

                   ...	

		END
	END
	
LAYER
    NAME "VIEW_RWG_TBS"
    CONNECTIONTYPE OracleSpatial
    CONNECTION "user/PW at service"
    DATA "GEOM FROM view_RWG_TBS USING UNIQUE FID SRID 82032 VERSION 9i"
    TYPE POLYGON
    STATUS ON
    MINSCALE 1000
    MAXSCALE 10000
    PROJECTION
		"init=epsg:4326"
	END
    TRANSPARENCY 50
    CLASSITEM  'TM_NR'
    METADATA
		WMS_TITLE "RWG_TM_NR"
	END

    CLASS
		NAME "11_13_15"
		EXPRESSION ('[TM_NR]' IN "11,13,15")
       	STYLE
       		COLOR 0 0 205
       	END
       	STYLE
       		OUTLINECOLOR 255 0 0
       		WIDTH 1
       		ANTIALIAS TRUE
       	END
    END

# Hier folgen noch einige CLASS-Definitionen, die aber alle einwandfrei funktionieren

END

# Hier folgen die beiden Layer die zur Beschriftung dienen; es handelt sich hierbei ebenfall um Oracle-Spatial-Daten (Punktgeometrien)

LAYER
    NAME "LABEL_RW"
    CONNECTIONTYPE OracleSpatial
    CONNECTION "user/PW at service"
    DATA "GEOM FROM view_LABEL_RW USING UNIQUE FID SRID 82032 VERSION 9i"
    TYPE ANNOTATION
    STATUS ON
    MINSCALE 1000
    MAXSCALE 10000
    PROJECTION
		"init=epsg:4326"
    END
    LABELITEM "LABEL_TEXT"
    SYMBOLSCALE 3100
    METADATA
		WMS_TITLE "VIEW_LABEL_RW"
    END
    CLASS
      LABEL
	TYPE truetype
       	FONT arial-bold
        SIZE 30
       	ANTIALIAS TRUE
       	COLOR 0 0 0
	OUTLINECOLOR 255 255 255
	POSITION uc
	FORCE TRUE
      END
    END
    LABELANGLEITEM "(100-ORIENTATION)*0.9"
END

LAYER
    NAME "LABEL_GFZ"
    CONNECTIONTYPE OracleSpatial
    CONNECTION "gds_brwk2004_umn/umn at gds1prod.stadt.nuernberg.de"
    DATA "GEOM FROM VIEW_LABEL_GFZ USING UNIQUE FID SRID 82032 VERSION 9i"
    TYPE ANNOTATION
    STATUS ON
    MINSCALE 1000
    MAXSCALE 10000
    PROJECTION
		"init=epsg:4326"
    END
    LABELITEM "LABEL_TEXT"
    SYMBOLSCALE 3100
    METADATA
		WMS_TITLE "VIEW_LABEL_GFZ"
    END
    CLASS
      LABEL
	TYPE truetype
       	FONT arial-bold
        SIZE 11
       	ANTIALIAS TRUE
       	COLOR 0 0 0
	OUTLINECOLOR 255 255 255
	POSITION lc
	FORCE TRUE
      END
    END
    LABELANGLEITEM "(100-ORIENTATION)*0.9"
END

END


Der GetCapabilities Request liefert ein XML-Dokument, an dem nicht zu beanstanden ist. Kein <-- Waring --> wird abgedruckt und auch für die beiden LABEL-Layers ist eine saubere BBOX definiert.

Wenn ich nun aber die Capabilities in Mapbender hochlade und die zugehörige GUI aufrufe geht es mit den Problemen los. Mapbender lädt die Bedienelemente und Rahmen, allerdings erscheint keine Karte (auch nicht wenn ich in dem Bereich zwischen MINSCALE und MAXSCALE hineinzoome). Erst wenn ich in der .map-Datei MINSCALE und MAXSCALE in den LAYER-Objekten rauskommentiere, dann zeigt Mapbender eine Karte.

Allerdings bleibt die Beschriftung in der Karte immer gleich groß, egal wie ich den Wert unter SYMBOLSCALE ändere. Auch eine Veränderung der Schriftgröße (SIZE in den LABEL-Objekten) zeigt keinerlei Auswirkung. Erst wenn ich auch SYMBOLSCALE auskommentiere machen sich Veränderungen der Schriftgröße-Werte bemerkbar. Dann habe ich allerdings das Problem, dass die Schriftgröße sich nicht mit dem gewählten Maßstab verändert, sondern immer gelich groß bleibt; und das möchte ich ja nicht.

Daraufhin habe ich die Ausgangs-.map-Datei (siehe oben) wieder hergestellt und habe einen WMS-GetMap-Request über meinen browser gestartet; und zwar habe ich dazu verschieden große BBOXes verwendet um zu sehen ob die Größe der Beschriftung sich dynamisch mit dem Maßstab verändert.

Folgendes hab ich den Browser eingegeben:

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apache/htdocs/brwk/test.map&REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&STYLE=default&BBOX=435896.35,478059.61,436390.06,478423.15&LAYERS=VIEW_RWG_TBS,LABEL_RW,LABEL_GFZ&FORMAT=image/png&BGCOLOR=0xFFFFFF&WIDTH=625&HEIGHT=463&EXCEPTIONS=application/vnd.ogc.se_inimage&

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apache/htdocs/brwk/test.map&REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&STYLE=default&BBOX=435287.81,477935.39,436606.49,478911.17&LAYERS=VIEW_RWG_TBS,LABEL_RW,LABEL_GFZ&FORMAT=image/png&BGCOLOR=0xFFFFFF&WIDTH=625&HEIGHT=463&EXCEPTIONS=application/vnd.ogc.se_inimage&


Das Ergebniss war sehr schön; wie gewünscht veränderte sich die Schriftgröße mit dem Maßstab. Auch die MAXSCALE und MINSCALE Parameter stellten kein Problem mehr dar.

Leider habe ich keine Erklärung warum ich den WMS-Dienst zwar "manuell" aufrufen kann und sich die gewünschten Ergebnisse einstellen, wenn ich aber den gleichen Dienst in Mapbender einbinden will ergeben sich die oben beschriebenen Probleme.

Hat jemand von Euch dafür ein Erklärung? Irgendwelche Ideen bzw. alternative Lösungswege, wie ich skalierbare mit dem Mapbender Beschriftungen hinbekommen könnte? Könnte evtl. meine Mapbender-Installation korrupt sein?

Für Eure Hilfe und Eure investierte Zeit bin Euch schon jetzt sehr dankbar.


Grüße

Daniel
-- 


"Feel free" – 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail




More information about the Mapbender_users mailing list