[Mapserver-users] PostGIS Spatial Selections in MapScript

Benjamin Wragg bwragg at tpg.com.au
Wed Feb 5 14:49:21 PST 2003


Hi all,

I'm currently building a web site which in part allows users to specify
an area on the screen to select features in a PostGIS layer. The
selected features need to be displayed on the map in a layer and a list
of the selected features displayed on the web page. The area that they
define gets created as a feature in a PostGIS layer. I was wondering
what methods people recommend to accomplish this in PHP/Mapscript.

In know that in psql I can use the following sql statement:

    select * from countries where the_geom &&
GeometryFromText('POLYGON((0 0 , 20 0, 20 20, 0 20, 0 0))',-1);

and get small portion of the worlds countries returned correctly.

To implement this sql in Mapsearch, what would be the way to go about
it? The idea I came up with is shown below. It doesn't work but am I on
the right track?

	$layer=ms_newLayerObj($GLOBALS['map']);
	$layer->set("connectiontype","postgis");	
	$layer->set("connection","host=localhost dbname=dbname user=user
password=password");
	$layer->set("data","the_geom from postgislayer");
	$layer->setFilter("the_geom && GeometryFromText('POLYGON((0 0 ,
20 0, 20 20, 0 20, 0 0))',-1)");
	$layer->set("name", $this->layerName);
	$layer->set("type", MS_LAYER_LINE);
	$class=ms_newClassObj($layer);
	$class->set("name", "Selected Features");
	$colorId=$GLOBALS['map']->addColor(255,0,0);
	$class->set("color", $colorId);
	$class->set("size", 5);
	$layer->set("status", MS_ON);

Thanks,

Benjamin Wragg




More information about the MapServer-users mailing list