Labeling

Developer
Nov 30, 2010 at 10:31 PM

I'm trying to get a handle on labeling.  It appears the parameters controlling how a label is generated are held by the LabelSymbolizer object.  I played around with one a little bit and it worked, but I have a question.  Is there a way to tell it to orient itself along a line?  It appears the only control we have is an angle which is just that... all the labels symbolized with that symbolizer would be at that angle.

I'm a little bit worried too about our large shapefile work... the MapLabelLayer seems to like IFeatures. Do we have a vision ofa plan to place labels when we are retrieving shapes from IShapeSource for drawing?

I just started looking at this today, so I may be missing lots of important stuff.  I tried playing around with labeling in DemoMap, but I got an exception trying to read the Proj4 string, which was kind of strange.

Thanks,

Kyle

Developer
Dec 1, 2010 at 5:18 AM

Interesting.  No I haven't written a line alignment label placement, or even a way to have the angle set to an attribute or something.  Also, you raise a good point about labels in general not likely to work well with large featuresets.  Not so much because they work with features, that can be changed very easily so that they work with index values if they can't already.  My concern is the rendering itself.  It seems like a default label everything, even with collision detection on, would take a long time to generate all the strings to get measurestring boxes for each of the labels to properly evaluate collision.  I may or may not be caching the resulting SizeF structures.  We really need to think about smarter tree handling of some kind on the labels, I just haven't gotten around to doing it yet.  It is an area where there is lots of room for improvements.  Yeah open source.

Ted