[mapserver-users] QuerybyPoint blues

Antti.Roppola at brs.gov.au Antti.Roppola at brs.gov.au
Tue Oct 1 17:28:14 PDT 2002


Hi Tom,

I have got queries on polygons and lines working OK (but not points).
Here are the relevant chunks of code.

	LAYER
	  NAME "Roads"
	  TYPE LINE
	  STATUS OFF
	  DATA roads
	  CLASS
	    NAME "Roads"
	    COLOR 255 0 0 
	    TEMPLATE "dummy" # doesn't exist
	  END
	  METADATA
	    "DESCRIPTION" "DCW roads"
	    ## The following are not the same as GMap
	    "QUERY_FIELDS_ITEM" "FORMATION"
	    "QUERY_FIELDS_DESC" "Road Formation Code"
	  END
	END

<HTML>
<?php
	if($click_x && $mode=="query") {	## Did someone make a query?
			## Convert image click location into map coordinates
		list($ClickMapX,$ClickMapY)=click2map($click_x,$click_y,$extent,$map)
		$pointQuery=ms_newPointObj();
		$pointQuery->setXY($ClickMapX,$ClickMapY);
		@map->queryByPoint($pointQuery, MS_MULTIPLE, -1);
		$img = $map->drawQuery();
		QueryResults($pointQuery, $map);	## This function is a hack from the same in Gmap
	}
?>
</HTML>

The QueryResults function is as from GMap (I have not gotten around to
writing my own and it works well enough), though I did add some debug
stuff so I could see what it was doing. In the function, find the line;
	"$numResults = $oLayer->getNumResults();
and insert the following line after it:

	if ($debug) { printf("Debug: Layer: %s Results: %s<BR>\n", $iLayer, $numResults); }

If you set $debug at the start of the function, this will show you if the
query is actually finding anything for each layer.

Cheers,

Antti




More information about the MapServer-users mailing list