[Mapserver-DE] Probleme bei der Darstellung eines Symbols

Kai Behncke Kai-Behncke at gmx.de
Mit Dez 28 15:01:10 CET 2005


> --- Ursprüngliche Nachricht ---
> Von: "KlausSchiefer" <KlausSchiefer at web.de>
> An: <mapserver-de at freegis.org>
> Betreff: [Mapserver-DE] Probleme bei der Darstellung eines Symbols
> Datum: Wed, 28 Dec 2005 13:12:07 +0100
> 
> Hallo Liste,
> 
>  
> 
> ich habe in POSTGIS Points of Interest als Punkte vorliegen, die ich
> mittels
> PIXMAP mit verschiedenen Symbolen darstellen kann. Wenn ich eine
> Suchfunktion nutze, kann ich mittels $layer->querybyattributes auf ein
> bestimmtes Objekt zoomen. Um das gefundene Objekt hervorzuheben, möchte
> ich
> einen farbigen Kreis um das Objekt legen, um das eigentliche Symbol nicht
> zu
> überdecken. Das habe ich mit einem temporären Layer auch geschafft.
> Allerdings handelt es sich um eine sehr dünne Linie. Bislang ist es mir
> noch
> nicht gelungen, die Linienstärke zu verändern.
> 
> Der Eintrag in der Symboldatei lautet:
> 
>  
> 
> SYMBOL # gleiches Zeichen wie "punkt" nur ohne Füllung und mit einem STYLE
> 
>   NAME "kreis"
> 
>   TYPE ELLIPSE
> 
>   POINTS
> 
>     1 1
> 
>   END
> 
>   STYLE
> 
>     1 10 1 10
> 
>   END
> 
> END
> 
>  
> 
> Der Abschnitt zu Definition des temporären Layers lautet:
> 
> // dynamischer Layer zur Visulisierung
> 
>   $Layer = ms_newLayerObj($map); 
> 
>   $Layer -> set("name","poiZoom");
> 
>   $Layer -> set("status", 1);
> 
>   $Layer -> set("connectiontype",  MS_POSTGIS);
> 
>   $Layer -> set("connection", "user=xx dbname=geodaten host=localhost
> port=5432 password=xx");
> 
>   $sqlStatment = "the_geom from (select oid, the_geom from poi where oid =
> '" . $oid . "') AS poiZoom";
> 
>   $Layer -> set("data", $sqlStatment);
> 
>   $Layer -> set("type", MS_LAYER_POINT);
> 
>   $poClass = ms_newClassObj($Layer);
> 
>   $styleObj = ms_newStyleObj($poClass);
> 
>   $styleObj -> color -> setRGB ( 255, 0, 0 );
> 
>   $styleObj -> set('size', 35);
> 
>   $styleObj->set("symbolname", "kreis");
> 
>  
> 
> Ich hoffe, jemand hat eine Idee oder einen anderen Weg zur Kennzeichnung
> des
> gefundenen Punktes.
> 
>  
> 
> Mit freundlichen Grüßen
> 
>  
> 
> Klaus Schiefer
> 
Hallo Klaus,

Du kannst das auf verschiedene Art und Weise lösen.
Eine Möglichkeit wäre für den Umrandungskreis
anstelle von
> SYMBOL # gleiches Zeichen wie "punkt" nur ohne Füllung und mit STYLE 
>   NAME "kreis"
>   TYPE ELLIPSE 
>   POINTS 
>     1 1 
>   END 
>   STYLE 
>     1 10 1 10 
>   END
> END

 mittels eines Bildbearbeitungsprogrammes ein PIXMAP-Symbol zu erstellen,
welches die gewünschte Liniendicke aufweist.
Die Fläche, welöche von der Linie umrandet wird muesste dann natürlich
transparent sein (also ein .gif-Symbol erstellen und diese Transparenz auch
einstellen).

So kann ohne Schwierigkeiten die gewünschte Umrandung erstellt werden.

Eine weitere (aber deutlich umständlichere) Möglichkeit wäre es mittels
eines Bildbearbeitungsprogrammes ein eigenes Font-Symbol zu
erstellen und dieses dann als TRUE-Type-Symbol einzubinden.
Falls Du diesen Weg gehen willst, dann findest Du hier
eine
Anleitung:
http://wald.intevation.org/plugins/wiki/index.php?Erstellung%20von%20%28ZV-AUT-konformen%29%20Symbolen%20f%C3%BCr%20den%20UMN%20Mapserver%20mittels%20fontforge&id=15&type=g

Beste Grüße, Kai Behncke



-- 
10 GB Mailbox, 100 FreeSMS/Monat http://www.gmx.net/de/go/topmail
+++ GMX - die erste Adresse für Mail, Message, More +++




This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)