/** * Returns an translated rendering envelope if the offsets are not using feature attributes. If * the offsets are feature dependent the user will have to expand the rendering area via the * renderer buffer parameter */ public ReferencedEnvelope invert(ReferencedEnvelope renderingEnvelope) { Double offsetY = getExpression(1).evaluate(null, Double.class); if (offsetY != null) { ReferencedEnvelope offseted = new ReferencedEnvelope(renderingEnvelope); offseted.translate(0, offsetY); return offseted; } else { return null; } }
/** Called after the base image has been dragged. Sets the new map area and transforms */ protected void afterImageMoved() { paramsLock.writeLock().lock(); try { int dx = imageOrigin.x; int dy = imageOrigin.y; DirectPosition2D newPos = new DirectPosition2D(dx, dy); mapContent.getViewport().getScreenToWorld().transform(newPos, newPos); ReferencedEnvelope env = new ReferencedEnvelope(mapContent.getViewport().getBounds()); env.translate(env.getMinimum(0) - newPos.x, env.getMaximum(1) - newPos.y); doSetDisplayArea(env); imageOrigin.setLocation(0, 0); baseImageMoved.set(false); } finally { paramsLock.writeLock().unlock(); } }
/** * Returns an translated rendering envelope if the offsets are not using feature attributes. If * the offsets are feature dependent the user will have to expand the rendering area via the * renderer buffer parameter */ public ReferencedEnvelope invert(ReferencedEnvelope renderingEnvelope) { Double offsetX = getExpression(1).evaluate(null, Double.class); Double offsetY = getExpression(2).evaluate(null, Double.class); if (offsetX != null && offsetY != null) { ReferencedEnvelope offseted = new ReferencedEnvelope(renderingEnvelope); offseted.translate(-offsetX, -offsetY); return offseted; } else { return null; } }
translated.translate(tx, ty); ReferencedEnvelope intersection = new ReferencedEnvelope(
@Test public void testQueryWrappingMercatorSeparate() throws Exception { ReferencedEnvelope world = new ReferencedEnvelope(160, 180, -40, 40, WGS84); ReferencedEnvelope mercatorEnvelope = world.transform(MERCATOR, true); // move it so that it crosses the dateline mercatorEnvelope.translate(mercatorEnvelope.getWidth() / 2, 0); // get query area, we expect two separate query envelopes ProjectionHandler handler = ProjectionHandlerFinder.getHandler(mercatorEnvelope, WGS84, true); List<ReferencedEnvelope> envelopes = handler.getQueryEnvelopes(); assertEquals(2, envelopes.size()); ReferencedEnvelope reOrig = envelopes.get(0); // original assertEquals(170.0, reOrig.getMinX(), EPS); assertEquals(180.0, reOrig.getMaxX(), EPS); ReferencedEnvelope reAdded = envelopes.get(1); // added assertEquals(-180.0, reAdded.getMinX(), EPS); assertEquals(-170.0, reAdded.getMaxX(), EPS); }
180, (validAreaBounds.getMinY() + validAreaBounds.getMaxY()) / 2)) { ReferencedEnvelope translated = new ReferencedEnvelope(validAreaBounds); translated.translate(-360, 0); if (translated.contains((Envelope) geWGS84)) { return geometry; -180, (validAreaBounds.getMinY() + validAreaBounds.getMaxY()) / 2)) { ReferencedEnvelope translated = new ReferencedEnvelope(validAreaBounds); translated.translate(360, 0); if (translated.contains((Envelope) geWGS84)) { return geometry;
if (tx2 != null) { if (tx2.getMinX() > 180) { tx2.translate(-360, 0);
@Test public void testSkipEmptyGeometryCollections() throws Exception { ReferencedEnvelope world = new ReferencedEnvelope(160, 180, -40, 40, WGS84); ReferencedEnvelope mercatorEnvelope = world.transform(MERCATOR, true); // move it so that it crosses the dateline (measures are still accurate for something // crossing the dateline mercatorEnvelope.translate(mercatorEnvelope.getWidth() / 2, 0); // a geometry that will cross the dateline and sitting in the same area as the // rendering envelope Geometry g1 = new WKTReader() .read( "POLYGON((150 40, 150 -90, 190 -90, 190 40, 175 40, 175 -87, 165 -87, 165 40, 150 40))"); // Empty geometry collection Geometry collection = new GeometryCollection(null, g1.getFactory()); // make sure the geometry is not wrapped ProjectionHandler handler = new ProjectionHandler( WGS84, new Envelope(-0.5d, 2.0d, -0.5d, 2.0d), mercatorEnvelope); assertTrue(handler.requiresProcessing(collection)); Geometry preProcessed = handler.preProcess(collection); // Ensure something has changed assertNotEquals(collection, preProcessed); // Ensure the result is null assertNull(preProcessed); }
/** * Returns an translated rendering envelope if the offsets are not using feature attributes. If * the offsets are feature dependent the user will have to expand the rendering area via the * renderer buffer parameter */ public ReferencedEnvelope invert(ReferencedEnvelope renderingEnvelope) { Double offsetY = getExpression(1).evaluate(null, Double.class); if (offsetY != null) { ReferencedEnvelope offseted = new ReferencedEnvelope(renderingEnvelope); offseted.translate(0, offsetY); return offseted; } else { return null; } }
@Test public void testWrapGeometryMercator() throws Exception { ReferencedEnvelope world = new ReferencedEnvelope(160, 180, -40, 40, WGS84); ReferencedEnvelope mercatorEnvelope = world.transform(MERCATOR, true); // move it so that it crosses the dateline (measures are still accurate for something // crossing the dateline mercatorEnvelope.translate(mercatorEnvelope.getWidth() / 2, 0); // a geometry that will cross the dateline and sitting in the same area as the // rendering envelope Geometry g = new WKTReader().read("LINESTRING(170 -40, 190 40)"); // make sure the geometry is not wrapped ProjectionHandler handler = ProjectionHandlerFinder.getHandler(mercatorEnvelope, WGS84, true); assertTrue(handler.requiresProcessing(g)); Geometry preProcessed = handler.preProcess(g); // no cutting expected assertEquals(g, preProcessed); // transform and post process MathTransform mt = CRS.findMathTransform(WGS84, MERCATOR, true); Geometry transformed = JTS.transform(g, mt); Geometry postProcessed = handler.postProcess(mt.inverse(), transformed); Envelope env = postProcessed.getEnvelopeInternal(); // check the geometry is in the same area as the rendering envelope assertEquals(mercatorEnvelope.getMinX(), env.getMinX(), EPS); assertEquals(mercatorEnvelope.getMaxX(), env.getMaxX(), EPS); }
public OffsetFeatureCollection(SimpleFeatureCollection delegate, double offsetX, double offsetY) { this(delegate, ff.literal(offsetX), ff.literal(offsetY)); offsetBounds = delegate.getBounds(); offsetBounds.translate(offsetY, offsetY); }
everything.translate(1.0, 1.0);
mercatorEnvelope.translate(mercatorEnvelope.getWidth() / 2, 0);
/** * Returns an translated rendering envelope if the offsets are not using feature attributes. If * the offsets are feature dependent the user will have to expand the rendering area via the * renderer buffer parameter */ public ReferencedEnvelope invert(ReferencedEnvelope renderingEnvelope) { Double offsetX = getExpression(1).evaluate(null, Double.class); Double offsetY = getExpression(2).evaluate(null, Double.class); if (offsetX != null && offsetY != null) { ReferencedEnvelope offseted = new ReferencedEnvelope(renderingEnvelope); offseted.translate(offsetX, offsetY); return offseted; } else { return null; } }
/** * Called after the base image has been dragged. Sets the new map area and * transforms */ protected void afterImageMoved() { paramsLock.writeLock().lock(); try { int dx = imageOrigin.x; int dy = imageOrigin.y; DirectPosition2D newPos = new DirectPosition2D(dx, dy); mapContent.getViewport().getScreenToWorld().transform(newPos, newPos); ReferencedEnvelope env = new ReferencedEnvelope(mapContent.getViewport().getBounds()); env.translate(env.getMinimum(0) - newPos.x, env.getMaximum(1) - newPos.y); doSetDisplayArea(env); imageOrigin.setLocation(0, 0); baseImageMoved.set(false); } finally { paramsLock.writeLock().unlock(); } }
Extent.translate(xTrans, yTrans);