[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)