import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.geom.Polygon;
import com.vividsolutions.jts.geom.prep.PreparedGeometry;
import com.vividsolutions.jts.operation.distance.DistanceOp;
import com.vividsolutions.jts.operation.relate.RelateOp;
public class TopologyAnalysisExample {
public static void main(String[] args) {
GeometryFactory geometryFactory = new GeometryFactory();
Coordinate coordinate1 = new Coordinate(0, 0);
Coordinate coordinate2 = new Coordinate(1, 1);
Point point1 = geometryFactory.createPoint(coordinate1);
Point point2 = geometryFactory.createPoint(coordinate2);
boolean isAdjacent = point1.isAdjacent(point2);
Coordinate[] coordinates = {new Coordinate(0, 0), new Coordinate(0, 1), new Coordinate(1, 1),
new Coordinate(1, 0), new Coordinate(0, 0)};
Polygon polygon = geometryFactory.createPolygon(coordinates);
boolean isContained = polygon.contains(point1);
boolean isIntersect = polygon.intersects(point1);
RelateOp relateOp = new RelateOp(polygon, point1);
boolean isRelated = relateOp.getIntersectionMatrix().isIntersects();
DistanceOp distanceOp = new DistanceOp(point1, point2);
double distance = distanceOp.distance();
System.out.println("isAdjacent: " + isAdjacent);
System.out.println("isContained: " + isContained);
System.out.println("isIntersect: " + isIntersect);
System.out.println("isRelated: " + isRelated);
System.out.println("distance: " + distance);
}
}