![]() |
||||
|
|
||||
[maplab-users] Zoom to polygonsMark Balman Mark.Balman@birdlife.org.ukFri, 15 Nov 2002 15:37:14 -0000
|
||||
Hi all
I have tried with some success at allowing a user to select a species from a
drop down list and then mapserver returns the requested species range
polygon. In my .map file I have placed the following layer:
LAYER
NAME range
DATA range
STATUS OFF
TYPE polygon
FILTERITEM Spcspecies
FILTER "%value%"
CLASS
COLOR 212 212 212
OUTLINECOLOR 0 0 0
TEMPLATE species_template.html
END
END
In the initialise html page I have added the following hidden objects:
<input type='hidden' name="mode" value="itemquery">
<input type='hidden' name="qlayer" value="range">
<input type='hidden' name="item" value="Spcspecies">
and also the select list:
Select species range:
<select name="value" size="1">
<option> COPRE
<option> BENG
<option> INDI
</select>
My problem is how to zoom to the selected value.. I have tried to integrate
this into an existing maplab/gmap prototype but without success. I have
tried using recommendations in the mailing list. I have tried putting the
following code (adapted from Andreas problem) into my dev_contents.php
<input type="hidden" name="mode" value="itemquery">
<input type="hidden" name="qlayer" value="range">
<input type="hidden" name="item" value="Spcspecies">
<!--------------------->
<!-- END HIDDEN VARS -->
<!--------------------->
Pick one:
<select name="value" size="1">
<option> COPRE
<option> BENG
<option> INDI
</select>
and into my dev.php:
/*
============================================================================
* Process navigation commands.
* =========================================================================
*/
if($http_form_vars["value"])
{
$szSpcspecies=$http_form_vars["Spcspecies"];
$oExtents=$oMapSession->oMap->extents;
$oRangeLayer=$oMapSession->oMap->getLayerByName("range");
$oRangeLayer->set("FILTERITEM","range");
$oRangeLayer->setFilter($szSpcspecies);
$oRangeLayer->queryByAttribute(MS_SINLGE);
if($oRangeLayer->getNumResults()>0)
$oResult = $oRangeLayer->getResult( 0 );
$oShape = $oRangeLayer->getShape( $oResult->tileindex,$oResult->shapeid);
$oExtents = $oShape->bounds;
$oShape->free();
}
{
$oMapNavigator->zoomRectangle;
($oExtents->minx, $oExtents->miny, $oExtents->maxx, $oExtents->maxy);
}
Alas, still cannot get it to work, I am using the following setup:
php 4.2.1
maplab 2.0rc3
Apache
Win'98
Any ideas would be most welcome as I am banging my head with this one!
Cheers!
Mark Balman
This archive was generated by Pipermail. |
MapTools.org -- Hosted by DM Solutions Group |