/** * Retrieves the Stroke from a LineSymbolizer. * * @param sym the symbolizer * @return the Stroke or null if not found. */ public static Stroke stroke(LineSymbolizer sym) { if (sym == null) { return null; } return sym.getStroke(); }
/** * Retrieve linestring color from linesymbolizer if available. * * @param symbolizer Line symbolizer information. * @return Color of linestring, or null if unavailable. */ public static Color lineColor(LineSymbolizer symbolizer) { if (symbolizer == null) { return null; } Stroke stroke = symbolizer.getStroke(); return color(stroke); }
/** * Retrieve linestring width from symbolizer if available. * * @param symbolizer Line symbolizer information. * @return width of linestring, or NOTFOUND */ public static int lineWidth(LineSymbolizer symbolizer) { if (symbolizer == null) { return NOTFOUND; } Stroke stroke = symbolizer.getStroke(); return width(stroke); }
/** * Retrieve the opacity from a LineSymbolizer object. * * @param symbolizer Line symbolizer information. * @return double of the line symbolizer's opacity, or NaN if unavailable. */ public static double lineOpacity(LineSymbolizer symbolizer) { if (symbolizer == null) { return Double.NaN; } Stroke stroke = symbolizer.getStroke(); return opacity(stroke); }
/** * Retrieves the linejoin from a LineSymbolizer. * * @param symbolizer Line symbolizer information. * @return String of the linejoin, or null if unavailable. */ public static String lineLinejoin(LineSymbolizer symbolizer) { if (symbolizer == null) { return null; } Stroke stroke = symbolizer.getStroke(); if (stroke == null) { return null; } Expression linejoinExp = stroke.getLineJoin(); return linejoinExp.toString(); }
/** * Retrieves the line cap from a LineSymbolizer. * * @param symbolizer Line symbolizer information. * @return String of the line stroke's line cap, or null if unavailable. */ public static String lineLinecap(LineSymbolizer symbolizer) { if (symbolizer == null) { return null; } Stroke stroke = symbolizer.getStroke(); if (stroke == null) { return null; } Expression linecapExp = stroke.getLineCap(); return linecapExp.toString(); }
/** Computes and returns the contour style */ public java.awt.Composite getContourComposite() { Stroke stroke = ls.getStroke(); if (stroke == null) { return null; } float opacity = ((Float) stroke.getOpacity().evaluate(feature, Float.class)).floatValue(); Composite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, opacity); return composite; }
@Override public void visit(LineSymbolizer line) { String name = line.getGeometryPropertyName(); Stroke stroke = update(line.getStroke()); LineSymbolizer copy = sf.createLineSymbolizer(stroke, name); pages.push(copy); }
/** @see org.geotools.styling.StyleVisitor#visit(org.geotools.styling.LineSymbolizer) */ public void visit(LineSymbolizer line) { if (symbolizerGeometriesVisitEnabled) { if (line.getGeometry() != null) { line.getGeometry().accept(this, null); } else { this.defaultGeometryUsed = true; // they want the default geometry (see GEOS-469) } } if (line.getPerpendicularOffset() != null) { line.getPerpendicularOffset().accept(this, null); } if (line.getStroke() != null) { line.getStroke().accept(this); } }
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); }
public LineSymbolizerBuilder reset(LineSymbolizer original) { if (original == null) { return unset(); } geometry = original.getGeometry(); strokeBuilder.reset(original.getStroke()); uom = original.getUnitOfMeasure(); perpendicularOffset = original.getPerpendicularOffset(); return this; }
@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); }
@Override protected void encode(LineSymbolizer sym) { inline(new StrokeEncoder(sym.getStroke())); put("offset", sym.getPerpendicularOffset()); super.encode(sym); } }
@Test public void testRescaleLocalPixelInPixelSymbolizer() throws Exception { Stroke stroke = sb.createStroke(Color.RED, 2, new float[] {5, 10}); stroke.setWidth(ff.literal("2px")); LineSymbolizer ls = sb.createLineSymbolizer(stroke); ls.accept(visitor); LineSymbolizer clone = (LineSymbolizer) visitor.getCopy(); assertEquals("4", clone.getStroke().getWidth().evaluate(null, String.class)); }
@Test public void testNoUnit() throws Exception { Stroke original = sb.createStroke(Color.RED, 2, new float[] {5, 10}); LineSymbolizer ls = sb.createLineSymbolizer(original); ls.accept(visitor); Stroke clone = ((LineSymbolizer) visitor.getCopy()).getStroke(); assertEquals(4.0d, clone.getWidth().evaluate(null, Double.class), 0d); assertEquals(10.0f, clone.getDashArray()[0], 0f); assertEquals(20.0f, clone.getDashArray()[1], 0f); TextSymbolizer ts = sb.createTextSymbolizer(); ts.getOptions().put(TextSymbolizer.SPACE_AROUND_KEY, "10"); ts.accept(visitor); TextSymbolizer clonedTs = (TextSymbolizer) visitor.getCopy(); assertEquals("20.0", clonedTs.getOptions().get(TextSymbolizer.SPACE_AROUND_KEY)); }
@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 testFeatureBound() throws Exception { StyleBuilder sb = new StyleBuilder(); LineSymbolizer ls = sb.createLineSymbolizer(Color.BLUE); ls.getStroke().setWidth(ff.multiply(ff.literal(2), ff.property("flow"))); Style style = sb.createStyle(ls); MetaBufferEstimator estimator = new MetaBufferEstimator(riverFeatures[0]); style.accept(estimator); assertTrue(estimator.isEstimateAccurate()); assertEquals(9, estimator.getBuffer()); } }