[mapserver-users] Get MAP file CLASSes with no data - empty
Armin Burger
armin.burger at gmx.net
Mon Dec 19 12:45:21 PST 2011
Michal
I hope I understood your question correctly...:
the following code returns all class indexes for the provided layer and
full map extent that appear in the data.
$me = $map->extent;
$layer->open();
$status = $layer->whichShapes($me);
$classWithData = array();
while ($shape = $layer->nextShape()) {
$shpIdx = $shape->index;
$clsIdx = $layer->getClassIndex($shape);
if (!in_array($clsIdx, $classWithData) && $clsIdx >= 0) {
$classWithData[] = $clsIdx;
}
}
$layer->close();
You could use this to get first all classes *with* data and then
calculate the difference of this array with the array of total classes.
The resulting array should contain the classes that are *not represented
in the data* , like
$allClasses = range(0, $layer->numclasses-1);
$noDataList = array_diff($allClasses, $classWithData);
print_r($noDataList);
Note however that this works like listed above only for layers that have
the same projection as the map. If both projections are different then
the call of "$layer->nextShape()" causes a segmentation fault (in both
MS 5.6 and 6). In this case you need to re-project the layer beforehand
to the projection of the map, then it should work.
Armin
On 17/12/2011 22:35, Michal Seidl wrote:
> I would like to get in PHP/Python environment the list of CLASSes which do
> not target any data. The situation is like this.
>
> 1) I am interested only in vector data
> 2) I have mapfile and running mapserver
> 3) There is LAYER with many CLASSes which are defined by EXPRESSION in
> mapfile
>
> Any suggestion how get classes with no data?
>
> Thanks Michal
>
> --
> View this message in context: http://osgeo-org.1803224.n2.nabble.com/Get-MAP-file-CLASSes-with-no-data-empty-tp7104765p7104765.html
> Sent from the Mapserver - User mailing list archive at Nabble.com.
> _______________________________________________
> 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