Вам нужно будет вычислить пересечение, затем его область и последний вычислить отношение
Geometry intersect = polygon1.intersection(polygon2);
double areaRatio = 100.0*intersect.getArea() / polygon2.getArea();
System.out.println("ratio: "+areaRatio + "%");
. Если вы хотите, чтобы геометрии были действительны до вычисления пересечения, используя polygon1.isValid()
и polygon2.isValid()
. Образцы данных для polygon2
являются самопересекающимися, поэтому операция пересечения терпит неудачу с
com.vividsolutions.jts.geom.TopologyException: обнаружено ненастроенное пересечение между LINESTRING (2.0 0.0, 2.0 2.0) и LINESTRING (1.0 1.0, 2.5 1.5) [(2.0, 1.3333333333333333, NaN)]
blockquote>