[mapserver-users] GetFeatures - get the ID value of clicked shape
Medve Zsolt
medvezs84 at gmail.com
Thu Apr 1 07:43:42 PDT 2010
Hy all
Can someone help me with this?
$layer = $map->getLayerByName('sde1','sde2','sde3','sde4');
// xy pix -> geo pt
$xPixel = $_REQUEST['x'];
$yPixel = $_REQUEST['y'];
$xGeo = $_SESSION['GEOEXT']['minx'] + (($xPixel/$_SESSION['mapwidth']) *
($_SESSION['GEOEXT']['minx']-$_SESSION['GEOEXT']['maxx']));
$yGeo = $_SESSION['GEOEXT']['maxy'] - (($yPixel/$_SESSION['mapheight'])
* ($_SESSION['GEOEXT']['maxy']-$_SESSION['GEOEXT']['miny']));
$pt = ms_newPointObj();
$pt->setXY($xGeo, $yGeo);
// proj
$mapProjStr = $map->getProjection();
$layerProjStr = $layer->getProjection();
if ($mapProjStr && $layerProjStr && $mapProjStr != $layerProjStr) {
$mapProjObj = ms_newprojectionobj($mapProjStr);
$layerProjObj = ms_newprojectionobj($layerProjStr);
$pt->project($mapProjObj, $layerProjObj);
}
// set map extent and size:
$map->setExtent($_SESSION['GEOEXT']['minx'],
$_SESSION['GEOEXT']['miny'], $_SESSION['GEOEXT']['maxx'],
$_SESSION['GEOEXT']['maxy']);
$map->setSize($_SESSION['mapwidth'], $_SESSION['mapheight']);
$map->preparequery();
// Use '@' to avoid warning if query found nothing
@$layer->queryByPoint($pt, MS_SINGLE, -1);
$pt->free();
if ($layer->getNumResults() == 1) {
$res = $layer->getResult(0);
$layer->open();
$shape = $layer->getFeature($res->shapeindex, $res->tileindex);
* $id = $shape->ID;*
$layer->close();
}
This code gets the x and y coordinates of the clicking ($xPixel =
$_REQUEST['x']) I have transformed it to Geo coords, and so on, and in
the end i want to search for my clicked shape's ID
Am i right that the $id variable is contaning the ID value of the
clicked shape? i have bolded the line i talking about.. (The shape file
have an attribute table and mine have a ID column)
Please if someone can help , do it:P
thanks,
Zsolt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20100401/7c81469c/attachment.htm>
More information about the MapServer-users
mailing list