版本
org.locationtech.jts:jts-core:1.19.0
链接: github
九交模型讲解:Dimensionally Extended 9 Intersection Matrix
九交模型
九交模型,是通过矩阵来判断俩个物体的关系的,请看上面九交模型讲解
九交模型测试
-
测试环境
www.geogebra.org 来生成俩个图形 -
使用 九交模型判断关系
多边形的维度是2,含组合多边形,带洞多边形等。
折线的维度为1,含多线。
点的维度为0,含多点。
空集(无交集)维度为F。内部 边界 外部 内部 F F 2 边界 F F 1 外部 2 1 2 蓝图形 - 红图形 内部:内部 无点线面交集 F
蓝图形 - 红图形 内部:边界 无点线面交集 F
蓝图形 - 红图形 内部:外部 外部包含红图形面 为 2蓝图形 - 红图形 边界:内部 无点线面交集 F
蓝图形 - 红图形 边界:边界 无点线面交集 F
蓝图形 - 红图形 边界:外部 蓝图形边界是一条线,被红图形外部包含所以为 1蓝图形 - 红图形 外部:内部 包含红图形 2
蓝图形 - 红图形 外部:边界 包含红图形边界 1
蓝图形 - 红图形 外部:外部 俩个外部面交互 2
九交模型代码
/**
* Geometry 九交模型
* @author LiHan
* 2023年9月15日 14:58:12
*/
public class GeometryMatrix {
private GeometryFactory geometryFactory = new GeometryFactory();
private static final Logger LOGGER = LoggerFactory.getLogger(GeometryMatrix.class);
public static void main(String[] args) {
GeometryMatrix geometryMatrix = new GeometryMatrix();
geometryMatrix.strMatrix();
}
/**
* 生成九交模型值
*/
public void strMatrix() {
Coordinate[] coordinates1 = new Coordinate[] {
new Coordinate(1, 1),
new Coordinate(1, 3),
new Coordinate(4, 3),
new Coordinate(4, 1),
new Coordinate(1, 1)
};
Polygon polygon1 = geometryFactory.createPolygon(coordinates1);
Coordinate[] coordinates2 = new Coordinate[] {
new Coordinate(1, 4),
new Coordinate(1, 6),
new Coordinate(4, 6),
new Coordinate(4, 4),
new Coordinate(1, 4)
};
Polygon polygon2 = geometryFactory.createPolygon(coordinates2);
// FF2FF1212
LOGGER.info(polygon1.relate(polygon2).toString());
}
}