From: Christian D. <C.D...@ro...> - 2010-04-30 09:05:51
|
Thanks for you help. Here the reduced code, where the fault still exists. I´ve changed some attributes, but there is always the same problem. The labels are filtered out in paintPointLabelInternal(...) of LabelCacheImpl. displayArea.contains(transformed) returns false. AnchorPoint ap = styleFactory.createAnchorPoint(filterFactory.literal(0.5), filterFactory.literal(0.0)); Displacement dp = styleFactory.createDisplacement(filterFactory.literal(0.0), filterFactory.literal(-20.0)); LabelPlacement placement = styleFactory.createPointPlacement(ap, dp, filterFactory.literal(0.0)); Fill bgFill = styleFactory.createFill(filterFactory.literal(bgColor), filterFactory.literal(1)); Stroke stroke = styleFactory.createStroke(filterFactory.literal(Color.black), filterFactory.literal(1.0), filterFactory.literal(1.0f)); Fill fillBg = styleFactory.createFill(filterFactory.literal(bgColor), filterFactory.literal(1.0)); Graphic graphicBg = styleFactory.createGraphic(null, new Mark[] {StyleFactoryFinder.createStyleFactory().getCrossMark()}, null, null, filterFactory.literal(20), filterFactory TextSymbolizer2 textSymbolizer = (TextSymbolizer2) styleFactory.createTextSymbolizer(fill, new Font[] {gtFont}, null, filterFactory.literal("This is a test"), placement, null); textSymbolizer.setGeometryPropertyName("geometry"); textSymbolizer.setGraphic(graphicBg); As I said, to the right side all works correct. Only the left side makes the problems. Depending on the length of the label, the label is hided earlier although there would be enough place to show it. But the label-bounds seem to be calculated correct. Cheers, Christian -----Ursprüngliche Nachricht----- Von: Andrea Aime [mailto:aa...@op...] Gesendet: Donnerstag, 29. April 2010 18:40 An: Christian Dubray Cc: geo...@li... Betreff: Re: [Geotools-gt2-users] Problem with the LabelShiel-hack of TextSymbolizer2 Christian Dubray ha scritto: > Hi, > > > > I have again a little problem. > > I´m trying to use the TextSymbolizer2 for a rectangle background. But > okay, that is not important because I have the same problem with all > graphic-objects. > > > > The problem is the following: > > If I don´t add a Graphic to my TextSymbolizer2 all works fine. If I add > one, the complete label (label and shield) isn´t shown if the feature is > near to the left border, although there is still absolute enough place > for the label and the shield. To the right side all works fine. > > What could be the problem? I reduced my code so that I thought I´m only > using geotools-stuff. But the problem still exists. Maybe I ignored a > failure in my code, but I reduced my code so that I think that I am > only using geotools-stuff for that. Has anybody experience with the > labelshield? I hope somebody can help me. Difficult to say without more details. Two common reasons beyond the normal conflict resolution: - the label or the icon would cross the map borders. We don't draw them in that case as that would break solid the tiled rendering case (a la Google Maps, for example). At the moment there is no way to turn off this behavior (though adding a new vendor option would not be so hard) - the object to be labelled is a polygon and the label containment within the polygon does not go beyond the minimum threshold (I think it's 50%). To change that you can add a vendor option to your text symbolizer with the key "goodnessOfFit" and a value between 0 and 1 If that does not help please provide a data set and a little self contained program that shows the behaviour you deem to be unsatisfactory Cheers Andrea -- Andrea Aime OpenGeo - http://opengeo.org Expert service straight from the developers. |