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