[mapserver-users] getting field names using mapscript
Jochen Wagner
jochen.wagner8 at googlemail.com
Thu Nov 6 05:32:53 PST 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