/** * Creates a new {@link PreparedGeometry} appropriate for the argument {@link Geometry}. * * @param geom the geometry to prepare * @return the prepared geometry */ public static PreparedGeometry prepare(Geometry geom) { return (new PreparedGeometryFactory()).create(geom); }
public synchronized void init() { if (preparedGeometry == null) { preparedGeometry = FACTORY.create(GeometryUtils.geometryFromBinary(geometryBinary, null)); } }
private SpatialQueryFilter( final StrippedGeometry strippedGeometry, final Geometry queryGeometry, final CompareOperation compareOp, final BasicQueryCompareOperation nonSpatialCompareOp) { super( strippedGeometry.strippedQuery, strippedGeometry.strippedDimensionDefinitions, nonSpatialCompareOp); preparedGeometryImage = new GeometryImage(FACTORY.create(queryGeometry)); geometryFieldNames = strippedGeometry.geometryFieldNames; compareOperation = compareOp; }
private static PreparedGeometry createPG(Geometry g) { return (new PreparedGeometryFactory()).create(g); }
public static boolean intersects(Geometry g1, Geometry g2) { PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); PreparedGeometry prepGeom = pgFact.create(g1); return prepGeom.intersects(g2); } public static boolean contains(Geometry g1, Geometry g2)
public static boolean contains(Geometry g1, Geometry g2) { PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); PreparedGeometry prepGeom = pgFact.create(g1); return prepGeom.contains(g2); } public static boolean covers(Geometry g1, Geometry g2)
public static boolean covers(Geometry g1, Geometry g2) { PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); PreparedGeometry prepGeom = pgFact.create(g1); return prepGeom.contains(g2); } }
public int testPrepGeomCached(int iter, Geometry g, List lines) { if (iter == 0) System.out.println("Using cached Prepared Geometry"); PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); PreparedGeometry prepGeom = pgFact.create(g); int count = 0; for (Iterator i = lines.iterator(); i.hasNext(); ) { LineString line = (LineString) i.next(); if (prepGeom.intersects(line)) count++; } return count; }
public int testPrepGeomCached(Geometry g, List lines) { System.out.println("Using cached Prepared Geometry"); PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); PreparedGeometry prepGeom = pgFact.create(g); int count = 0; for (Iterator i = lines.iterator(); i.hasNext(); ) { LineString line = (LineString) i.next(); if (prepGeom.intersects(line)) count++; } return count; }
public void testResultsEqual(Geometry g, LineString line) { boolean slowIntersects = g.intersects(line); PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); PreparedGeometry prepGeom = pgFact.create(g); boolean fastIntersects = prepGeom.intersects(line); if (slowIntersects != fastIntersects) { System.out.println(line); System.out.println("Slow = " + slowIntersects + ", Fast = " + fastIntersects); throw new RuntimeException("Different results found for intersects() !"); } } }
/** * Tests using PreparedGeometry, but creating a new * PreparedGeometry object each time. * This tests whether there is a penalty for using * the PG algorithm as a complete replacement for * the original algorithm. * * @param g * @param lines * @return the count */ public int testPrepGeomNotCached(Geometry g, List lines) { System.out.println("Using NON-CACHED Prepared Geometry"); PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); // PreparedGeometry prepGeom = pgFact.create(g); int count = 0; for (Iterator i = lines.iterator(); i.hasNext(); ) { LineString line = (LineString) i.next(); // test performance of creating the prepared geometry each time PreparedGeometry prepGeom = pgFact.create(g); if (prepGeom.intersects(line)) count++; } return count; }
/** * Tests using PreparedGeometry, but creating a new * PreparedGeometry object each time. * This tests whether there is a penalty for using * the PG algorithm as a complete replacement for * the original algorithm. * * @param g * @param lines * @return the count */ public int testPrepGeomNotCached(int iter, Geometry g, List lines) { if (iter == 0) System.out.println("Using NON-CACHED Prepared Geometry"); PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); // PreparedGeometry prepGeom = pgFact.create(g); int count = 0; for (Iterator i = lines.iterator(); i.hasNext(); ) { LineString line = (LineString) i.next(); // test performance of creating the prepared geometry each time PreparedGeometry prepGeom = pgFact.create(g); if (prepGeom.intersects(line)) count++; } return count; }
public boolean checkIntersects(Geometry target, Geometry test) { boolean expectedResult = target.intersects(test); PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); PreparedGeometry prepGeom = pgFact.create(target); boolean prepResult = prepGeom.intersects(test); if (prepResult != expectedResult) { return false; } return true; }
public boolean checkContains(Geometry target, Geometry test) { boolean expectedResult = target.contains(test); PreparedGeometryFactory pgFact = new PreparedGeometryFactory(); PreparedGeometry prepGeom = pgFact.create(target); boolean prepResult = prepGeom.contains(test); if (prepResult != expectedResult) { return false; } return true; }