[mapserver-users] getting field names using mapscript

Jochen Wagner jochen.wagner8 at googlemail.com
Thu Nov 6 08:32:53 EST 2008


thanks, works fine and fast for each layer:

$layer->open();
$myitems = $layer->getItems();

foreach($myitems as $item) {
	echo $item."<br>";
}
$layer->close();

but how can I get the numer of records without a query?
Jo


2008/11/6 Umberto Nicoletti <umberto.nicoletti at gmail.com>:
> You can use the items array on the layer object to get the field names
>
> On Thu, Nov 6, 2008 at 12:10 PM, Jochen Wagner
> <jochen.wagner8 at googlemail.com> wrote:
>> 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