public ProjectionHandler getHandler( ReferencedEnvelope renderingEnvelope, CoordinateReferenceSystem sourceCrs, boolean wrap, int maxWraps) throws FactoryException { if (renderingEnvelope == null) { return null; } MapProjection mapProjection = CRS.getMapProjection(renderingEnvelope.getCoordinateReferenceSystem()); if (mapProjection instanceof WorldVanDerGrintenI) { ReferencedEnvelope validArea = new ReferencedEnvelope( -Integer.MAX_VALUE, Integer.MAX_VALUE, -90, 90, DefaultGeographicCRS.WGS84); return new ProjectionHandler(sourceCrs, validArea, renderingEnvelope); } return null; } }
return new ProjectionHandler(sourceCrs, validArea, renderingEnvelope);
return handler; } else { return new ProjectionHandler(sourceCrs, validArea, renderingEnvelope);
DefaultGeographicCRS.WGS84); ProjectionHandler ph = new ProjectionHandler(sourceCrs, validArea, renderingEnvelope); if ((validArea.getMinX() < 180 && validArea.getMaxX() > 180) || (validArea.getMinX() < -180 && validArea.getMaxX() > -180)) {
new ReferencedEnvelope(-180, 180, 0, 90, DefaultGeographicCRS.WGS84); ProjectionHandler ph = new ProjectionHandler( DefaultGeographicCRS.WGS84, validAreaBounds, renderingEnvelope);
maxWraps); } else { handler = new ProjectionHandler(sourceCrs, VALID_AREA, renderingEnvelope); handler.setCentralMeridian(centralMeridian);
new ReferencedEnvelope(-180, 180, 0, 90, DefaultGeographicCRS.WGS84); ProjectionHandler ph = new ProjectionHandler( DefaultGeographicCRS.WGS84, validAreaBounds, renderingEnvelope);
new Polygon[] {beforeAntiMeridian, afterAntiMeridian}); return new ProjectionHandler(sourceCrs, mask, renderingEnvelope); } else { return new ProjectionHandler(sourceCrs, validArea, renderingEnvelope);
@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); }
public ProjectionHandler getHandler(ReferencedEnvelope renderingEnvelope, boolean wrap, int maxWraps) { MapProjection mapProjection = CRS.getMapProjection(renderingEnvelope .getCoordinateReferenceSystem()); if (renderingEnvelope != null && mapProjection instanceof TransverseMercator) { double centralMeridian = mapProjection.getParameterValues().parameter( AbstractProvider.CENTRAL_MERIDIAN.getName().getCode()).doubleValue(); ReferencedEnvelope validArea = new ReferencedEnvelope(centralMeridian - 45, centralMeridian + 45, -90, 90, DefaultGeographicCRS.WGS84); return new ProjectionHandler(renderingEnvelope, validArea); } return null; }
public ProjectionHandler getHandler(ReferencedEnvelope renderingEnvelope, boolean wrap, int maxWraps) { CoordinateReferenceSystem crs = renderingEnvelope.getCoordinateReferenceSystem(); if (renderingEnvelope != null && crs instanceof GeographicCRS) { GeographicCRS geogCrs = (GeographicCRS) crs; if(wrap && maxWraps > 0) { double centralMeridian = geogCrs.getDatum().getPrimeMeridian().getGreenwichLongitude(); return new WrappingProjectionHandler(renderingEnvelope, null, centralMeridian, maxWraps); } else { return new ProjectionHandler(renderingEnvelope, null); } } return null; }
public ProjectionHandler getHandler(ReferencedEnvelope renderingEnvelope, boolean wrap, int maxWraps) { MapProjection mapProjection = CRS.getMapProjection(renderingEnvelope .getCoordinateReferenceSystem()); if (renderingEnvelope != null && mapProjection instanceof Mercator) { if(wrap && maxWraps > 0) { double centralMeridian = mapProjection.getParameterValues().parameter( AbstractProvider.CENTRAL_MERIDIAN.getName().getCode()).doubleValue(); return new WrappingProjectionHandler(renderingEnvelope, VALID_AREA, centralMeridian, maxWraps); } else { return new ProjectionHandler(renderingEnvelope, VALID_AREA); } } return null; }
return new ProjectionHandler(renderingEnvelope, validArea);