Пример #1
0
 private static Polygon findPolygonContaining(Geometry geom, Coordinate pt) {
   PointLocator locator = new PointLocator();
   for (int i = 0; i < geom.getNumGeometries(); i++) {
     Polygon poly = (Polygon) geom.getGeometryN(i);
     int loc = locator.locate(pt, poly);
     if (loc == Location.INTERIOR) return poly;
   }
   return null;
 }
Пример #2
0
  public static List extractElements(Geometry geom, boolean skipEmpty) {
    List elem = new ArrayList();
    if (geom == null) return elem;

    for (int i = 0; i < geom.getNumGeometries(); i++) {
      Geometry elemGeom = geom.getGeometryN(i);
      if (skipEmpty && elemGeom.isEmpty()) continue;
      elem.add(elemGeom);
    }
    return elem;
  }
Пример #3
0
  public Geometry combine(Geometry orig, Geometry geom) {
    List origList = extractElements(orig, true);
    List geomList = extractElements(geom, true);
    origList.addAll(geomList);

    if (origList.size() == 0) {
      // return a clone of the orig geometry
      return (Geometry) orig.clone();
    }
    // return the "simplest possible" geometry
    return geomFactory.buildGeometry(origList);
  }
Пример #4
0
 public static Geometry replace(Geometry parent, Geometry original, Geometry replacement) {
   List elem = extractElements(parent, false);
   Collections.replaceAll(elem, original, replacement);
   return parent.getFactory().buildGeometry(elem);
 }