[mapserver-users] Create Dynamic Pt Layer, then queryByPoint()

Dan Barron dbarron at ddive.com
Fri Mar 1 16:59:48 EST 2002


I'm new Mapserver, been working with it for a few weeks now. This list and 
its archives have been a great resource of experience to draw on!  I'm 
hoping someone can help me with a problem I seem to be having.

I am trying to do the following:

1) using PHP/Mapscript, query a database of georef points, then create a 
dynamic layer of type POINT to display them
2) then use the queryByPoint() function to query a point
3) also use the queryByRect() function to query the whole current view ( a 
suggestion found in another post )

Well, 1) is successful but 2) & 3) returns MS_FAILURE value or 1 - doesn't 
find anything.  I would have expected 3) to at least find something since 
there are points being displayed in the current extent.  I have looked 
through all the examples and the mail list archive to no avail at this 
point.  Below are the relevant parts of my map file and php file.

Anyone know the trick to this? Thanks!

Dan Barron
Destination Software LLC
San Diego, CA
dbarron at ddive.com

<< snip from map file for the point layer>>
-------------------------------------------
LAYER
   NAME 'point-test'
   TYPE POINT
   STATUS OFF
   CLASS
     name 'point-test'
     SYMBOL 'c:\bin\mapserver\mapservertest\graphics\novice-icon.png'
     template 'point-test-template.html'
   END
   tolerance 10
END

<< snip from php file for the point query>>
-------------------------------------------
  // turn it into lat lon values
   $georef_x = $mapext->minx + ($pix_x/$w)*($mapext->maxx-$mapext->minx);
   $georef_y = $mapext->maxy - ($pix_y/$h)*($mapext->maxy-$mapext->miny);
   $georef_pt = ms_newPointObj();
   $georef_pt->setXY( $georef_x, $georef_y);

   // set the new extent values
   $my_extent = ms_newrectObj();
   $my_extent->setextent($extent_to_set[0],$extent_to_set[1],
                                 $extent_to_set[2],$extent_to_set[3]);

   $mode = $HTTP_POST_VARS["mode"];
   if( $mode == $query_selected ) {
           $zoom_factor = 0;
           $check_query = "checked";

        // query by point defined by mouse click
        $found = $map->queryByPoint($georef_pt, MS_SINGLE, -1);
           echo "query found=".$found."<br>";

           $qr = ms_newRectObj();
           $qr->setextent($extent_to_set[0],$extent_to_set[1],
                            $extent_to_set[2],$extent_to_set[3]);

           // query by rectObj the size of current view extent
        $found = $map->queryByRect($qr);
           echo "query found=".$found."<br>";





More information about the mapserver-users mailing list