Mapscript - Sorting labels

Ryan, Adam ARyan at CO.LINN.OR.US
Wed Jun 8 15:11:04 PDT 2005


> -----Original Message-----
> From: marc [mailto:gribol at FREE.FR] 
> Sent: Wednesday, June 08, 2005 2:55 PM
> To: MAPSERVER-USERS at LISTS.UMN.EDU
> Subject: [UMN_MAPSERVER-USERS] Mapscript - Sorting labels
> 
> 
> Hi,
> 
> I have a shapefile (points) which contains cities names. For 
> each town, a field contains the population number. I would 
> like to renderer my map with cities names. I use Mapserver's 
> stuff to avoid name collisions. I use the population field to 
> do some filtering. I use PHP-Mapscript.
> 
> Here is a pseudo algorithm:
> 
> IF map_extent > 180 THEN render shapes with population > 
> 5000k ELSE IF map_extent > 90 THEN render shapes with 
> population > 2500k ELSE IF map_extent > 45 THEN render shapes 
> with population > 1000k ...
> 
> When the current map extent fits the first condition, it's 
> fine. But for the others conditions, all matching shapes are 
> rendered but without any sort between them.
> 
> For the second condition, I would like to render first the 
> shapes with pop
> > 5000k, then next the shapes with 5000k > pop > 2500k.
> 
> If I use 2 classes in a same layer, it is not working. I can 
> have names of towns which are in the range [2500k-5000k] and 
> no name in the range > 5000k (I suppose that there are towns 
> with pop > 5000k, but the Mapserver collision treatment 
> filters them). So I cannot guarantee that cities with pop > 
> 5000k are first displayed. And next, cities with population 
> in the range [2500k-5000k].
> 
> I get the same issue with 2 layers and a FILTER attribute on 
> each layer.
> 
> Any suggestion to help me ?
> Thanks.
> 

Hi marc.

Have you tried setting up three scale-dependant (MINSCALE / MAXSCALE
defined) classes within your layer using your filters as EXPRESSION values?

Adam



More information about the MapServer-users mailing list