if (uomNode != null) { UomOgcMapping uomMapping = UomOgcMapping.get(uomNode.getNodeValue()); symbol.setUnitOfMeasure(uomMapping.getUnit());
public void visit(LineSymbolizer line) { LineSymbolizer copy = sf.getDefaultLineSymbolizer(); copy.setGeometry(copy(line.getGeometry())); copy.setUnitOfMeasure(line.getUnitOfMeasure()); copy.setStroke(copy(line.getStroke())); copy.getOptions().putAll(line.getOptions()); copy.setPerpendicularOffset(line.getPerpendicularOffset()); if (STRICT && !copy.equals(line)) { throw new IllegalStateException( "Was unable to duplicate provided LineSymbolizer:" + line); } pages.push(copy); }
@Override public void visit(LineSymbolizer line) { super.visit(line); LineSymbolizer copy = (LineSymbolizer) pages.peek(); Unit<Length> uom = copy.getUnitOfMeasure(); Stroke copyStroke = copy.getStroke(); rescaleStroke(copyStroke, uom); copy.setPerpendicularOffset(rescale(copy.getPerpendicularOffset(), uom)); copy.setUnitOfMeasure(Units.PIXEL); }
public LineSymbolizer build() { if (unset) { return null; // builder was constructed but never used } Stroke stroke = strokeBuilder.build(); if (stroke == null) { stroke = Stroke.DEFAULT; } LineSymbolizer ls = sf.createLineSymbolizer(stroke, null); if (geometry != null) { ls.setGeometry(geometry); } if (uom != null) { ls.setUnitOfMeasure(uom); } if (perpendicularOffset != null) { ls.setPerpendicularOffset(perpendicularOffset); } ls.getOptions().putAll(options); if (parent == null) { reset(); } return ls; }
@Test public void testUOMEncodingLineSymbolizer() throws Exception { LineSymbolizer lineSymbolizer = sf.createLineSymbolizer(); lineSymbolizer.setUnitOfMeasure(UomOgcMapping.METRE.getUnit()); lineSymbolizer.setStroke(sf.createStroke(ff.literal("#0000FF"), ff.literal("3"))); Rule rule = sf.createRule(); rule.symbolizers().add(lineSymbolizer); Rule[] rules = new Rule[] {rule}; FeatureTypeStyle featureTypeStyle = sf.createFeatureTypeStyle(rules); List<FeatureTypeStyle> featureTypeStyles = new ArrayList<FeatureTypeStyle>(); featureTypeStyles.add(featureTypeStyle); double dpi90 = 25.4 / 0.28; double widthAtDpi90 = 10714.286; Assert.assertEquals(widthAtDpi90, getStrokeWidth(featureTypeStyles, rules, dpi90), 0.1); Assert.assertEquals( widthAtDpi90 * 2, getStrokeWidth(featureTypeStyles, rules, dpi90 * 2), 0.5); Assert.assertEquals( widthAtDpi90 * 3, getStrokeWidth(featureTypeStyles, rules, dpi90 * 3), 0.5); Assert.assertEquals( widthAtDpi90 * 4, getStrokeWidth(featureTypeStyles, rules, dpi90 * 4), 0.5); Assert.assertEquals( widthAtDpi90 * 5, getStrokeWidth(featureTypeStyles, rules, dpi90 * 5), 0.5); }
public void testLineSymbolizerWithUOM() { LineSymbolizer lineSymb = sf.createLineSymbolizer(); LineSymbolizer clone = (LineSymbolizer) visitor.copy(lineSymb); assertCopy(lineSymb, clone); LineSymbolizer notEq = sf.getDefaultLineSymbolizer(); notEq.setUnitOfMeasure(UomOgcMapping.METRE.getUnit()); assertEqualsContract(clone, notEq, lineSymb); }
@Test public void testRescaleLocalPixelInMetersSymbolizer() throws Exception { Stroke stroke = sb.createStroke(Color.RED, 2, new float[] {5, 10}); stroke.setWidth(ff.literal("2px")); LineSymbolizer ls = sb.createLineSymbolizer(stroke); ls.setUnitOfMeasure(SI.METRE); ls.accept(visitor); LineSymbolizer clone = (LineSymbolizer) visitor.getCopy(); assertEquals("4px", clone.getStroke().getWidth().evaluate(null, String.class)); }
@Test public void testAllFeet() throws Exception { Stroke original = sb.createStroke(Color.RED, 2, new float[] {5, 10}); LineSymbolizer ls = sb.createLineSymbolizer(original); ls.setUnitOfMeasure(USCustomary.FOOT); ls.accept(visitor); Stroke clone = ((LineSymbolizer) visitor.getCopy()).getStroke(); assertEquals(2d, clone.getWidth().evaluate(null, Double.class), 0d); assertEquals(5f, clone.getDashArray()[0], 0f); assertEquals(10f, clone.getDashArray()[1], 0f); TextSymbolizer ts = sb.createTextSymbolizer(); ts.getOptions().put(TextSymbolizer.SPACE_AROUND_KEY, "10"); ts.setUnitOfMeasure(USCustomary.FOOT); ts.accept(visitor); TextSymbolizer clonedTs = (TextSymbolizer) visitor.getCopy(); assertEquals("10.0", clonedTs.getOptions().get(TextSymbolizer.SPACE_AROUND_KEY)); }
@Test public void testAllMeters() throws Exception { Stroke original = sb.createStroke(Color.RED, 2, new float[] {5, 10}); LineSymbolizer ls = sb.createLineSymbolizer(original); ls.setUnitOfMeasure(SI.METRE); ls.accept(visitor); Stroke clone = ((LineSymbolizer) visitor.getCopy()).getStroke(); assertEquals(2d, clone.getWidth().evaluate(null, Double.class), 0d); assertEquals(5f, clone.getDashArray()[0], 0f); assertEquals(10f, clone.getDashArray()[1], 0f); TextSymbolizer ts = sb.createTextSymbolizer(); ts.getOptions().put(TextSymbolizer.SPACE_AROUND_KEY, "10"); ts.setUnitOfMeasure(SI.METRE); ts.accept(visitor); TextSymbolizer clonedTs = (TextSymbolizer) visitor.getCopy(); assertEquals("10.0", clonedTs.getOptions().get(TextSymbolizer.SPACE_AROUND_KEY)); }
@Test public void testSymbolizerMeterOverrideInPixels() throws Exception { Stroke original = sb.createStroke(Color.RED, 2, new float[] {5, 10}); original.setWidth(ff.literal("2px")); LineSymbolizer ls = sb.createLineSymbolizer(original); ls.setUnitOfMeasure(SI.METRE); ls.accept(visitor); Stroke clone = ((LineSymbolizer) visitor.getCopy()).getStroke(); // this one has been rescaled assertEquals(4d, clone.getWidth().evaluate(null, Double.class), 0d); // the dash array did not, it's supposed to be meters assertEquals(5f, clone.getDashArray()[0], 0f); assertEquals(10f, clone.getDashArray()[1], 0f); TextSymbolizer ts = sb.createTextSymbolizer(); ts.getOptions().put(TextSymbolizer.SPACE_AROUND_KEY, "10px"); ts.setUnitOfMeasure(SI.METRE); ts.accept(visitor); TextSymbolizer clonedTs = (TextSymbolizer) visitor.getCopy(); // this one has been rescaled assertEquals("20.0", clonedTs.getOptions().get(TextSymbolizer.SPACE_AROUND_KEY)); }
@Override public void visit(LineSymbolizer line) { super.visit(line); LineSymbolizer copy = (LineSymbolizer) pages.peek(); Unit<Length> uom = copy.getUnitOfMeasure(); if(uom == null || uom.equals(NonSI.PIXEL)) { return; } Stroke copyStroke = copy.getStroke(); rescaleStroke(copyStroke, mapScale, uom); copy.setUnitOfMeasure(NonSI.PIXEL); }
symbol.setUnitOfMeasure(uomMapping.getUnit());
ls.setUnitOfMeasure(SI.METRE);
public void visit(LineSymbolizer line) { LineSymbolizer copy = sf.getDefaultLineSymbolizer(); copy.setGeometry(copy(line.getGeometry())); copy.setUnitOfMeasure(line.getUnitOfMeasure()); copy.setStroke( copy( line.getStroke())); copy.getOptions().putAll(line.getOptions()); copy.setPerpendicularOffset(line.getPerpendicularOffset()); if( STRICT && !copy.equals( line )){ throw new IllegalStateException("Was unable to duplicate provided LineSymbolizer:"+line ); } pages.push(copy); }
/** * (non-Javadoc) * * @see * org.geotools.styling.visitor.DuplicatingStyleVisitor#visit(org.geotools.styling.LineSymbolizer) */ public void visit(LineSymbolizer line) { LineSymbolizer copy = sf.getDefaultLineSymbolizer(); copy.setGeometry(copy(line.getGeometry())); copy.setUnitOfMeasure(line.getUnitOfMeasure()); copy.setStroke(copy(line.getStroke())); copy.getOptions().putAll(line.getOptions()); copy.setPerpendicularOffset(line.getPerpendicularOffset()); if (STRICT && !copy.equals(line)) { throw new IllegalStateException( "Was unable to duplicate provided LineSymbolizer:" + line); } pages.push(copy); }
/** * (non-Javadoc) * * @see * org.geotools.styling.visitor.DuplicatingStyleVisitor#visit(org.geotools.styling.LineSymbolizer) */ @Override public void visit(LineSymbolizer line) { LineSymbolizer copy = sf.getDefaultLineSymbolizer(); copy.setGeometry(copy(LineString.class, line.getGeometry())); copy.setUnitOfMeasure(line.getUnitOfMeasure()); copy.setStroke(copy(line.getStroke())); copy.getOptions().putAll(line.getOptions()); copy.setPerpendicularOffset(line.getPerpendicularOffset()); if (STRICT && !copy.equals(line)) { throw new IllegalStateException( "Was unable to duplicate provided LineSymbolizer:" + line); } pages.push(copy); }
/** Update symbol. */ private void updateSymbol() { if (!Controller.getInstance().isPopulating()) { Expression perpendicularOffset = fieldConfigVisitor.getExpression(FieldIdEnum.PERPENDICULAR_OFFSET); Expression geometryField = ExtractGeometryField.getGeometryField(fieldConfigVisitor); StandardData standardData = getStandardData(); LineSymbolizer lineSymbolizer = (LineSymbolizer) SelectedSymbol.getInstance().getSymbolizer(); if (lineSymbolizer != null) { lineSymbolizer.setName(standardData.getName()); lineSymbolizer.setDescription(standardData.getDescription()); lineSymbolizer.setUnitOfMeasure( (standardData.getUnit() != null) ? standardData.getUnit().getUnit() : null); lineSymbolizer.setGeometry(geometryField); lineSymbolizer.setPerpendicularOffset(perpendicularOffset); this.fireUpdateSymbol(); } } }