computeLocation method

void computeLocation(
  1. Coordinate p,
  2. Geometry geom
)

Implementation

void computeLocation(Coordinate p, Geometry geom) {
  if (geom is Point) {
    updateLocationInfo(locateOnPoint(p, geom));
  }
  if (geom is LineString) {
    updateLocationInfo(locateOnLineString(p, geom));
  } else if (geom is Polygon) {
    updateLocationInfo(locateInPolygon(p, geom));
  } else if (geom is MultiLineString) {
    MultiLineString ml = geom;
    for (int i = 0; i < ml.getNumGeometries(); i++) {
      LineString l = ml.getGeometryN(i) as LineString;
      updateLocationInfo(locateOnLineString(p, l));
    }
  } else if (geom is MultiPolygon) {
    MultiPolygon mpoly = geom;
    for (int i = 0; i < mpoly.getNumGeometries(); i++) {
      Polygon poly = mpoly.getGeometryN(i) as Polygon;
      updateLocationInfo(locateInPolygon(p, poly));
    }
  } else if (geom is GeometryCollection) {
    GeometryCollectionIterator geomi = new GeometryCollectionIterator(geom);
    while (geomi.hasNext()) {
      Geometry g2 = geomi.next() as Geometry;
      if (g2 != geom) computeLocation(p, g2);
    }
  }
}