shell.setUserData(new ArrayList<LinearRing>());
shell.setUserData(new ArrayList<LinearRing>());
public void setUserData(Object userData) { polygon.setUserData(userData); }
cellPoly.setUserData(v.getCoordinate()); return cellPoly;
@Override public Iterator<Polygon> call(Geometry spatialObject) throws Exception { List<Polygon> result = new ArrayList<Polygon>(); if (spatialObject instanceof MultiPolygon) { MultiPolygon multiObjects = (MultiPolygon) spatialObject; for (int i = 0; i < multiObjects.getNumGeometries(); i++) { Polygon oneObject = (Polygon) multiObjects.getGeometryN(i); oneObject.setUserData(multiObjects.getUserData()); result.add(oneObject); } } else if (spatialObject instanceof Polygon) { result.add((Polygon) spatialObject); } else { throw new Exception("[ShapefileRDD][getPolygonRDD] the object type is not Polygon or MultiPolygon type. It is " + spatialObject.getGeometryType()); } return result.iterator(); } }));
LinearRing shell = gf.createLinearRing(coords); Polygon bbox = gf.createPolygon(shell, null); bbox.setUserData(DefaultGeographicCRS.WGS84);
@Override public Iterator<Polygon> call(Geometry spatialObject) throws Exception { List<Polygon> result = new ArrayList<Polygon>(); if (spatialObject instanceof MultiPolygon) { MultiPolygon multiObjects = (MultiPolygon) spatialObject; for (int i = 0; i < multiObjects.getNumGeometries(); i++) { Polygon oneObject = (Polygon) multiObjects.getGeometryN(i); oneObject.setUserData(multiObjects.getUserData()); result.add(oneObject); } } else if (spatialObject instanceof Polygon) { result.add((Polygon) spatialObject); } else { throw new Exception("[ShapefileRDD][getPolygonRDD] the object type is not Polygon or MultiPolygon type. It is " + spatialObject.getGeometryType()); } return result.iterator(); } });
LinearRing shell = gf.createLinearRing(coords); Polygon bbox = gf.createPolygon(shell, null); bbox.setUserData(DefaultGeographicCRS.WGS84);
@Override public Iterator<Polygon> call(Geometry spatialObject) throws Exception { List<Polygon> result = new ArrayList<Polygon>(); if (spatialObject instanceof MultiPolygon) { MultiPolygon multiObjects = (MultiPolygon) spatialObject; for (int i = 0; i < multiObjects.getNumGeometries(); i++) { Polygon oneObject = (Polygon) multiObjects.getGeometryN(i); oneObject.setUserData(multiObjects.getUserData()); result.add(oneObject); } } else if (spatialObject instanceof Polygon) { result.add((Polygon) spatialObject); } else { throw new Exception("[ShapefileRDD][getPolygonRDD] the object type is not Polygon or MultiPolygon type. It is " + spatialObject.getGeometryType()); } return result.iterator(); } });
@Override public Iterator<Polygon> call(Geometry spatialObject) throws Exception { List<Polygon> result = new ArrayList<Polygon>(); if (spatialObject instanceof MultiPolygon) { MultiPolygon multiObjects = (MultiPolygon) spatialObject; for (int i = 0; i < multiObjects.getNumGeometries(); i++) { Polygon oneObject = (Polygon) multiObjects.getGeometryN(i); oneObject.setUserData(multiObjects.getUserData()); result.add(oneObject); } } else if (spatialObject instanceof Polygon) { result.add((Polygon) spatialObject); } else { throw new Exception("[ShapefileRDD][getPolygonRDD] the object type is not Polygon or MultiPolygon type. It is " + spatialObject.getGeometryType()); } return result.iterator(); } }));
/** * Returns the completed OGC Polygon. * * @param geometryFactory Geometry factory to be used in Polygon creation. * * @return Completed OGC Polygon. */ public Geometry create(GeometryFactory geometryFactory) { for (int i = 0; i < innerBoundaries.size(); i++) { LinearRing hole = (LinearRing) innerBoundaries.get(i); if (hole.crosses(outerBoundary)) { LOGGER.warning("Topology Error building polygon"); return null; } } LinearRing[] rings = (LinearRing[]) innerBoundaries.toArray(new LinearRing[innerBoundaries.size()]); Polygon polygon = geometryFactory.createPolygon(outerBoundary,rings); polygon.setUserData( getSRS() ); polygon.setSRID( getSRID() ); return polygon; } }
/** * Returns the completed OGC Polygon. * * @param geometryFactory Geometry factory to be used in Polygon creation. * * @return Completed OGC Polygon. */ public Geometry create(GeometryFactory geometryFactory) { for (int i = 0; i < innerBoundaries.size(); i++) { LinearRing hole = (LinearRing) innerBoundaries.get(i); if (hole.crosses(outerBoundary)) { LOGGER.warning("Topology Error building polygon"); return null; } } LinearRing[] rings = (LinearRing[]) innerBoundaries.toArray(new LinearRing[innerBoundaries.size()]); Polygon polygon = geometryFactory.createPolygon(outerBoundary,rings); polygon.setUserData( getSRS() ); polygon.setSRID( getSRID() ); return polygon; } }
public Expression getExpression2() { Coordinate[] coords = new Coordinate[5]; coords[0] = new Coordinate(envelope.getMinX(), envelope.getMinY()); coords[1] = new Coordinate(envelope.getMinX(), envelope.getMaxY()); coords[2] = new Coordinate(envelope.getMaxX(), envelope.getMaxY()); coords[3] = new Coordinate(envelope.getMaxX(), envelope.getMinY()); coords[4] = new Coordinate(envelope.getMinX(), envelope.getMinY()); LinearRing ring = null; GeometryFactory gfac = new GeometryFactory(); try { ring = gfac.createLinearRing(coords); } catch (TopologyException tex) { throw new IllegalFilterException(tex.toString()); } Polygon polygon = gfac.createPolygon(ring, null); if (envelope instanceof ReferencedEnvelope) { ReferencedEnvelope refEnv = (ReferencedEnvelope) envelope; polygon.setUserData(refEnv.getCoordinateReferenceSystem()); } return factory.literal(polygon); }
polygon.setUserData( getSRS() ); polygon.setSRID( getSRID() );
polygon.setUserData( getSRS() ); polygon.setSRID( getSRID() );
if (env instanceof ReferencedEnvelope) { ReferencedEnvelope refEnv = (ReferencedEnvelope) env; polygon.setUserData(refEnv.getCoordinateReferenceSystem());
cellPoly.setUserData(v.getCoordinate()); return cellPoly;
@Test public void testGetCount() throws Exception { assertEquals(3, pointsSource.getCount(Query.ALL)); assertEquals(3, linesSource.getCount(Query.ALL)); Filter filter; filter = ff.id(Collections.singleton(ff.featureId(RepositoryTestCase.idP2))); assertEquals(1, pointsSource.getCount(new Query(pointsName, filter))); ReferencedEnvelope queryBounds = boundsOf(points1, points2); Polygon geometry = JTS.toGeometry(queryBounds); filter = ff.intersects(ff.property(pointsType.getGeometryDescriptor().getLocalName()), ff.literal(geometry)); assertEquals(2, pointsSource.getCount(new Query(pointsName, filter))); ReferencedEnvelope transformedQueryBounds; CoordinateReferenceSystem queryCrs = CRS.decode("EPSG:3857"); transformedQueryBounds = queryBounds.transform(queryCrs, true); geometry = JTS.toGeometry(transformedQueryBounds); geometry.setUserData(queryCrs); filter = ff.intersects(ff.property(pointsType.getGeometryDescriptor().getLocalName()), ff.literal(geometry)); assertEquals(2, pointsSource.getCount(new Query(pointsName, filter))); filter = ECQL.toFilter("sp = 'StringProp2_3' OR ip = 2000"); assertEquals(2, linesSource.getCount(new Query(linesName, filter))); }
@Test public void testGetBoundsQuery() throws Exception { ReferencedEnvelope bounds; Filter filter; filter = ff.id(Collections.singleton(ff.featureId(RepositoryTestCase.idP2))); bounds = pointsSource.getBounds(new Query(pointsName, filter)); assertEquals(boundsOf(points2), bounds); ReferencedEnvelope queryBounds = boundsOf(points1, points2); Polygon geometry = JTS.toGeometry(queryBounds); filter = ff.intersects(ff.property(pointsType.getGeometryDescriptor().getLocalName()), ff.literal(geometry)); bounds = pointsSource.getBounds(new Query(pointsName, filter)); assertEquals(boundsOf(points1, points2), bounds); ReferencedEnvelope transformedQueryBounds; CoordinateReferenceSystem queryCrs = CRS.decode("EPSG:3857"); transformedQueryBounds = queryBounds.transform(queryCrs, true); geometry = JTS.toGeometry(transformedQueryBounds); geometry.setUserData(queryCrs); filter = ff.intersects(ff.property(pointsType.getGeometryDescriptor().getLocalName()), ff.literal(geometry)); bounds = pointsSource.getBounds(new Query(pointsName, filter)); assertEquals(boundsOf(points1, points2), bounds); filter = ECQL.toFilter("sp = 'StringProp2_3' OR ip = 2000"); bounds = linesSource.getBounds(new Query(linesName, filter)); assertEquals(boundsOf(lines3, lines2), bounds); }
@Test public void testGetBoundsQueryWithSpatialIndex() throws Exception { createQuadTree(pointsName); ReferencedEnvelope bounds; Filter filter; filter = ff.id(Collections.singleton(ff.featureId(RepositoryTestCase.idP2))); bounds = pointsSource.getBounds(new Query(pointsName, filter)); assertEquals(boundsOf(points2), bounds); ReferencedEnvelope queryBounds = boundsOf(points1, points2); Polygon geometry = JTS.toGeometry(queryBounds); filter = ff.intersects(ff.property(pointsType.getGeometryDescriptor().getLocalName()), ff.literal(geometry)); bounds = pointsSource.getBounds(new Query(pointsName, filter)); assertEquals(boundsOf(points1, points2), bounds); ReferencedEnvelope transformedQueryBounds; CoordinateReferenceSystem queryCrs = CRS.decode("EPSG:3857"); transformedQueryBounds = queryBounds.transform(queryCrs, true); geometry = JTS.toGeometry(transformedQueryBounds); geometry.setUserData(queryCrs); filter = ff.intersects(ff.property(pointsType.getGeometryDescriptor().getLocalName()), ff.literal(geometry)); bounds = pointsSource.getBounds(new Query(pointsName, filter)); assertEquals(boundsOf(points1, points2), bounds); filter = ECQL.toFilter("sp = 'StringProp2_3' OR ip = 2000"); bounds = linesSource.getBounds(new Query(linesName, filter)); assertEquals(boundsOf(lines3, lines2), bounds); }