[Mapserver-DE] Datenabrage Mapserver - Postgre

Armin Burger armin.burger at gmx.net
Fre Jan 20 18:36:39 CET 2006


ich wuerd hauptsaechlich 2 Moeglichkeiten sehen:

1) die Verwendung einer Query Map
2) das Hinzufuegen eines dynamischen Layers, der lediglich die 
selektierten Features enthaelt.

(2) ist etwas flexibler und man koennte es ungefahr so amchen:

// Basis-Layer, auf den abgefragt wird
$map = ...;
$baseLayer = $map->getLayerByName('dein_layer');
$queryFilter = "flaechen_nr = 223";

addResultLayer($map, $baseLayer, $queryFilter);

function addResultLayer($map, $baseLayer, $queryFilter)
{
     //Hinzufuegen eines Result-Layers
     $newResLayer = ms_newLayerObj($map);
     $newResLayer->set("name", "reslayer");
     $newResLayer->set("type", $baseLayer->type);
     //$newResLayer->set("type", 1); //wenn's nur Umrandung sein soll
     $newResLayer->set("data", $baseLayer->data);

     $newResLayer->setFilter($queryFilter);

     //andere Eigenschaften wie CLASS/COLOR
     $resClass = ms_newClassObj($newResLayer);
     $clStyle = ms_newStyleObj($resClass);
     $clStyle->color->setRGB(255, 0, 0);

     // fuer Linien/Umrandungen
     //$clStyle->set("symbolname", "circle");
     //$clStyle->set("size", 4);

     $newResLayer->set("status", MS_ON);
}

die Funktion addResultLayer() muesstest du dann halt bei jedem erneuten 
Erzeugen der Karte ausfuehren, geht am besten wenn man mit Sessions zB. 
fuer den Abfragefilter arbeitet.

Ein Beispiel, wie es aussehen koennte, kannst du anschauen unter

http://pmapper.sourceforge.net/demo.shtml

=> bei Verwendung der Such- oder Selektionsfunktion.

Armin



Wigold at aol.com wrote:
> Hallo Liste,
>  
> ich stehe schon wieder vor einem Problem und hoffe, dass mir mal wieder 
> jemand weiterhelfen kann!?
> Also, ich lade diverse Flächen(Polygone) aus einer Postgre Datenbank in 
> meinen Mapserver.
> Jetzt wollte ich versuchen über eine Abfrage (nach Flächennummer) eine 
> gewünschte Fläche anzeigen zu lassen. Ich bin erst nach dem Skipt 
> (http://www.selbstverwaltung-bundesweit.de/mapserver/modules.php?name=Selektivedatenabfrage) 
> vorgegangen, aber das funktioniert bei mir schon nicht. Vermutlich, weil 
> ich den Layer-Status nicht wie im Beispiel auf DEFAULT sondern auf ON 
> stehen habe, damit ich die Layer in der Karte aktivieren kann.
>  
> Nach diesem Beispiel würde aber nur die gewünschte Fläche angezeigt 
> werden und alle anderen sind nicht mehr sichtbar.
>  
> Was müsste ich also machen, damit weiterhin alle Flächen angezeigt 
> bleiben und die gesuchte Fläche in einer gesonderten Farbe dargestellt 
> wird?
> Ist dazu eine zweite Map-Datei zwingend erforderlich, oder gibt es eine 
> alternative Lösung?
>  
> Danke im vorraus für die Hilfe.
> Gruß
> Mike
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Mapserver-DE mailing list
> Mapserver-DE at freegis.org
> https://freegis.org/mailman/listinfo/mapserver-de




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