Opened 19 years ago

Last modified 17 years ago

#1619 closed enhancement

Establish a mechanism to prioritize labeling. — at Initial Version

Reported by: sdlime Owned by: sdlime
Priority: high Milestone: 5.0 release
Component: MapServer C Library Version: 4.8
Severity: minor Keywords:
Cc:

Description

At the moment labeling uses a last in first out (LIFO) mechanism to plot labels
on a map. The results in excessive use of ANNOTATION layers to make certain
labels more prominent. It would be desireable to be able to prioritize LABEL
objects for layers in place. One idea might be to create a new layer or class
parameter called LABELPRIORITY with values from 1 (lowest) to 10 (highest). LIFO
would still be used to prioritize labels within a priority class but all the
class 10s would be drawn first, 9's next and so on. Default priority would be
something like a 5. 

I think this could be done by maintaining 10 cache lists in the label cache.
This would add one extra loop to the label cache processors (there are a bunch
of them, a most one for each output driver). The increased overhead would be
offset by not having to process layers multiple times. Cache counters would make
skipping empty priority classes very simple.

Collision avoidance would be the same as always.

Dan mentioned he has some ideas in this area as well so I've added him to the CC
list...

Steve

Change History (0)

Note: See TracTickets for help on using tickets.