hat jemand ne Ahnung wie ich einen transparenten Hintergrund mit Mapserver hinbekomme? wms_transparent true hilft nicht.
Mapfile sieht so aus
LAYER
METADATA
"wms_transparent" "true"
END
STATUS ON
GROUP "cells"
PROJECTION
"init=epsg:4326"
END
CONNECTIONTYPE postgis
CONNECTION "host=localhost dbname=cells user=blub password=bla port=1234"
PROCESSING "CLOSE_CONNECTION=DEFER"
maxscaledenom 3001000
minscaledenom 1
TYPE ANNOTATION
NAME "BTS"
DATA "way from (select way,cid,mcc,mnc from cells where mcc is not null) as foo using unique cid using srid=4326"
LABELITEM cid
CLASSITEM 'mcc'
CLASS
EXPRESSION '262'
LABEL
FONT sc
TYPE TRUETYPE
SIZE 8
COLOR 0 0 0
OUTLINECOLOR 255 255 255
OUTLINEWIDTH 3
WRAP ' '
BUFFER 10
MAXLENGTH 8
ALIGN CENTER
PRIORITY 8
PARTIALS FALSE
POSITION AUTO
END
END
END
naja, ich habe noch ein paar Groups, die OSM Daten rendern. Das soll sich natürlich nicht ändern. Mein Mapfile hat aber auch nix, was eine Transparenz verhindern würde. Aber transparent ist nichts geworden, auch nicht mit Deinen Tipps
MAP
NAME OSM-WMS
FONTSET "/osm/mapserver/fonts.list"
STATUS ON
UNITS METERS
WEB
METADATA
"wms_title" "Thomas WMS-Server"
"labelcache_map_edge_buffer" "-10"
"wms_onlineresource" "to_be_replaced_by_wms.py"
"wms_srs" "EPSG:4326 EPSG:900913"
"wms_connectiontimeout" "240"
END
IMAGEPATH "/osm/mapserver/imagepath/"
END
CONFIG "PROJ_LIB" "/usr/share/proj/"
CONFIG "MS_ERRORFILE" "stderr"
EXTENT 0 0 180 180
MAXSIZE 4000
SIZE 800 800
UNITS dd
IMAGECOLOR "#B3C6D4"
PROJECTION
"init=epsg:4326"
END
“mapserv?map=…/maps/xxx.map&LAYERS=laender&TRANSPARENT=TRUE&FORMAT=png&SERVICE=WMS”
oder
“mapserv?map=…/maps/xxx.map&LAYERS=laender&TRANSPARENT=FALSE&FORMAT=png&SERVICE=WMS”
bei Openlayers steht bei mir immer transparent: “true”
Danke, Transparent kann ich es schon machen, aber das sieht blöd aus. Ich hätte gerne die Hintergrundfarbe weg. Witzigerweise ist mit Tilecache der Hintergrund immer voll transparent, auch wenn ich das bei den anderen Layern eigentlich gar nicht will. Dann werd ich wohl den Umweg über Tilecache gehen.
Die Farbe des Hintergrunds entspricht der von IMAGECOLOR. Das kann ich nicht weglassen sonst gibts nur ne Fehlermeldung. Auch TRANSPARENT hat keinen Effekt. Naja, funktioniert zwar nicht so wie es sollte, aber es geht. Danke nochmal
OUTPUTFORMAT
NAME ‘AGGA’
DRIVER AGG/PNG
IMAGEMODE RGBA
END
(dabei braucht man TRANSPARENT ON nicht anzugeben weil der Imagemode ja schon RGBA ist)
oder mit 256 Farben
OUTPUTFORMAT
NAME png
DRIVER “GD/PNG”
MIMETYPE “image/png”
IMAGEMODE PC256
EXTENSION “png”
TRANSPARENT ON
END
Noch zur Erklärung … OUTPUTFORMAT kann man auch weglassen im Mapfile
(ich vermute mal, du hast den Abschnitt nicht drin), dann werden eben die
Default Einstellungen genommen und die ist zb. bei PNG
OUTPUTFORMAT
NAME png
DRIVER “GD/PNG”
MIMETYPE “image/png”
IMAGEMODE PC256
EXTENSION “png”
END
ich glaube, wir reden aneinander vorbei. Das Layer soll ein Overlay über einer Karte sein. Die Symbole und der Text sollen nicht durchsichtig sein, der Rest komplett durchsichtig damit man die Karte dahinter sieht. Jetzt kann ich zwar eine Transparenz einstellen, was auch klappt, aber damit werden die Symbole und Text des Layers auch durchsichtig.
Mit Tilecache gehts (warum auch immer).
ja genau das macht die oben genannte Einstellung … sie macht den Hintergrund transparent und zwar genau die IMAGECOLOR
Damit werden keine Symbole oder Text durchsichtig. lediglich der Hintergrund wird, wie du das willst transparent.
Wen du schreibst du kannst jetzt zwar die Symbole Transparent machen, dann machst du das ja entweder mit OPACITY oder aber du verwendest einen Wert für IMAGECOLOR der nicht einmalig ist und z.B in den Symbolen auch vorkommt.
Das liegt halt daran, dass bei 256 Farben einer Palette eben eine ausgewählt wird, die Transparent ist, die darf dann natürlich nur 1x vorkommen. Also dann entweder IMAGeCOLOR entsprechend ändern oder png gleich auf RGBA umstellen