AW: [Mapserver-DE] Query via Mapscript?

Peter Korduan peter.korduan at uni-rostock.de
Mit Jul 20 10:09:56 CEST 2005


> -----Ursprüngliche Nachricht-----
> Von: mapserver-de-bounces at freegis.org [mailto:mapserver-de-
> bounces at freegis.org] Im Auftrag von Ralph Anthes
> Gesendet: Dienstag, 19. Juli 2005 13:02
> An: mapserver-de at freegis.org
> Betreff: [Mapserver-DE] Query via Mapscript?
> 
> Hallo Liste,
> 
> ich verzweifele irgendwie am Query via Mapscript. Es kommt immer
> folgende Meldung:
> *Warning*: [MapServer Error]: msQueryByPoint(): No matching record(s)
> found. in */home/anthes/gis/mapserver/europa/query.php* on line *56
> 
> *Was mache ich falsch bzw. wo ist der Denkfehler?
> 
> Vielen Dank
> Ralph
> 
> Hier meine Abfrage:
> $map->preparequery();
> $shapepath = $map->shapepath;
> $my_point = ms_newpointObj();
> $my_point->setXY($HTTP_POST_VARS["map_x"],$HTTP_POST_VARS["map_y"]);
> for ($i = 1; $i <= count($pLayer); $i++) {
>   $layer = $map->getLayerByName($pLayer[$i]);
>   if ($pLayerStatus[$i] == "ON") {
>     $layer->set("status",MS_ON);
>     if ($layer->queryByPoint($my_point, MS_SINGLE, 0) == MS_SUCCESS ) {
>       for ($j=0; $j<$layer->getNumResults(); $j++) {
>     $result = $layer->getResult($j);
>     printf("lay=%d, res=%d, si=%d, ti=%d, ci=%d\n",
>            $i, $j, $result->shapeindex, $result->tileindex,
>            $result->classindex);
>       }
>     }
>   }
>   if ($pLayerStatus[$i] == "ON") {
>     $layer->set("status",MS_ON);
>   } else {
>     $layer->set("status",MS_OFF);
>   }
> 
> Hier ein Ausschnitt aus meinem Mapfile:
> ############################################################
> Kartenbeschreibung
> DEBUG ON
> NAME EUROPA
> IMAGETYPE PNG
> SIZE 800 600
> STATUS ON
> SHAPEPATH "/home/anthes/gis/mapserver/europa/data/"
> FONTSET "fonts/fonts.list"
> IMAGECOLOR 86 131 249
> 
> ############################################################
> Projektionseinstellung
> #################### Mode latlong
> EXTENT -11.1185 40 25.5 54
> PROJECTION  "init=epsg:31297" END # 4326" END
> UNITS DD
> 
> ############################################################ QUERY
> anschalten
> QUERYMAP
>   STATUS ON
>   STYLE HILITE
> END
> 
> ############################################################ Layer
> Stadtgebiete
> LAYER
>   NAME CityArea
>   TYPE POLYGON
>   STATUS OFF
>   DATA city_area
>   TOLERANCE 10
> #  LABELREQUIRES ([Cities] = 1)
>   LABELITEM 'NAME'
>   LABELMAXSCALE 1000000
>   CLASS
>     TEMPLATE dummy.foo
>     NAME "Citiesarea"
>     COLOR 255 150 130
>     LABEL
>       POSITION AUTO
>       PARTIALS TRUE
>       TYPE TRUETYPE
>       FONT "Arial-bold"
>       ANTIALIAS TRUE
>       SIZE 8
>       COLOR 0 0 0
>       MAXSIZE 15
>       MINSIZE 5
>       OUTLINECOLOR 255 255 255
>       WRAP " "
>     END
>   END
>   TOLERANCE 10
>   TOLERANCEUNITS PIXELS
> END
> 
> LAYER
>   NAME CityQuery
>   TYPE QUERY
>   STATUS ON
>   DATA city_area
>   CLASS
>     TEMPLATE dummy.foo
>   END
>   TOLERANCE 10
>   TOLERANCEUNITS PIXELS
> END
> 
> 
> 
> --
> Dipl.-Ing. Ralph Anthes
> 
> Ingenieurgesellschaft für Verkehrs- und Eisenbahnwesen mbH
> Vahrenwalder Platz 3, 30165 Hannover
> Telefon: 0511/984228-18
> Fax: 0511/984228-29
> http://www.ive-mbh.de
> 
[Peter Korduan:   ]

Hallo Ralph

Wie die Meldung sagt, findet queryByPoint keine Punkte an der Stelle, die
mit $my_point übergeben wird zur Suche.

Überprüfe doch mal was in $HTTP_POST_VARS["map_x"],$HTTP_POST_VARS["map_y"]
drin steht. Wenn es einfach nur die Pixelkoordinaten Deiner Karte sind, die
mit einem <input img="[img]"... übergeben wurden, kann MapServer nichts
finden. Dann musst Du die Pixelwerte erst umrechnen in Dein System, in dem
die Daten vorliegen. Das über MapExtent und Scale.

Viel Glück

Dr.-Ing. Peter Korduan
Universität Rostock, Institut für Management ländlicher Räume
Professur für Geodäsie und Geoinformatik
Justus v. Liebig Weg 6, 18059 Rostock
Tel.: ++49-381-4982164, Fax: ++49-381-4982188
WWW: http://www.auf.uni-rostock.de/gg/korduan




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