[mapserver-users] getting field names using mapscript

Nicol Hermann mapserver at geoworld.de
Thu Nov 6 14:14:46 EST 2008


Hi Jochen,

Assuming you are using Shapefiles maybe you can achieve your second goal
with the base module of PHP

http://de3.php.net/manual/de/function.dbase-numrecords.php

HTH
Nicol


Am Donnerstag, den 06.11.2008, 12:10 +0100 schrieb Jochen Wagner:
> Hi list,
> I would like to list from any layer ($ qlayer) only the field names of
> the attribute tables and the number of objects in the table.
> 
> With this code it works already:
> 
> //loading mapfile
> $map= ms_newMapObj($mapfilepath.'\
> demo.map');
> 
> //set layer
> $layer = $map->getLayerByName($qlayer);
> 
> //rectquery via mapextent
> @$datQuery = $layer->queryByRect($map->extent);
> 
> //if query is successful
> if ($datQuery == MS_SUCCESS) {
>  //number of objects
>  $resnum = $layer->getNumResults();
>  echo 'Anzahl: '.$resnum.'<br>';
> 
>  $layer->open();
>  $result = $layer->getResult(0);
>  $shpobj = $layer->getShape($result->tileindex,$result->shapeindex);
> 
>  //read attribute table
>  $attr = $shpobj->values;
>  foreach($attr as $name=>$wert) {
>      echo 'Feld: '.$name.'<br>';
>  }
> }
> $shpobj->free();
> $layer->close();
> 
> However, this method has the disadvantage using a layers with many
> records the script takes a very long time, I guess because I have a
> query about the whole issue run.
> Has someone an approach for me, getting
> 1. the field names of the table and
> 2. the number of objects in the table
> performantly using MapScript ?
> thanks
> Jo
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users



More information about the mapserver-users mailing list