[Mapserver-DE] queryByShape Quellkode Beispiel gesucht

Sebastian Albrecht albrecht at fielax.de
Son Sep 18 14:40:44 CEST 2005


Hallo Eduard,

> ich versuche queryByShape in php mapscript richtig anzuwenden.
> Bitte um Hilfe, wie ist hier die vorgehensweise.
> Ein wenig Beispielkode wenn verfügbar wäre toll.

Zunächst brauchst du ein LayerObj-Objekt, auf dem du die Abfrage 
durchführst und ein ShapeObj-Objekt (vom Typ MS_SHAPE_POLYGON), welches 
die geographischen Grenzen für deine Abfrage enthält.

Das Layer-Objekt bekommst du aus deinem MapObj-Objekt (mit den Methoden 
getLayer oder getLayerByName) und ein ShapeObj-Objekt kannst du selber 
erstellen oder ebenfalls aus vorhandenen Layern beziehen.

Dieses Beispiel gibt die Anzahl abgefragter Datensätze zurück, sowie 
jede einzelne Shape-Datensatznummer.

$result = $layer->queryByShape($shape);
if($result == MS_SUCCESS)
{
     $numResults = $layer->getNumResults();
     echo "Anzahl gefundener Datensätze: " . $numResults . "\n";
     for($i=0; $i<$numResults; $i++)
     {
         $resultObj = $layer->getResult($i);
         echo "Shape-Index: " . $resultObj->shapeindex . "\n";
         echo " Tile-Index: " . $resultObj->tileindex . " \n";
         echo "Class-Index: " . $resultObj->classindex . " \n";
         echo "\n";
     }
}

Mit dem shapeindex und dem tileindex kannst du nun mittels 
$layer->getShape(shapeindex, tileindex) jedes einzelne Shape-Objekt 
beziehen und ggf. dessen Attribute ausgeben oder oder oder.

Die einzelnen Klassen und Methoden sind in der PHP/Mapscript-Referenz 
auf der Mapserver-Seite sehr gut beschrieben und wenn man dort 
durchguckt, erhält man einen ganz guten Überblick wer was wie 
zurückliefert und mit welchen Argumenten man wiederum andere Methoden 
aufrufen kann.

Hoffe das hat etwas gebracht. Ansonsten weiterfragen... ;)

Sebastian




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