GeoTools测试几何合并union

该代码示例展示了如何使用Geometry对象在Java中进行多边形合并。当两个多边形相交时,它们会合并成一个单个多边形;而不相交的多边形合并会形成一个多边形集合。此外,文中提到可以使用OpenLayers和GeoJSON.io在线渲染WKT和GeoJSON数据。
摘要由CSDN通过智能技术生成

一 合并测试

image.png

@Test
public void unionTest() {
    GeometryFactory factory = new GeometryFactory();
    Polygon polygon_1 = factory.createPolygon(new Coordinate[]{
            new Coordinate(0, 0),
            new Coordinate(10, 0),
            new Coordinate(10, 10),
            new Coordinate(0, 10),
            new Coordinate(0, 0),});
    System.out.println(polygon_1.toString());

    Polygon polygon_2 = factory.createPolygon(new Coordinate[]{
            new Coordinate(10, 0),
            new Coordinate(20, 0),
            new Coordinate(20, 10),
            new Coordinate(10, 10),
            new Coordinate(10, 0),});
    System.out.println(polygon_2.toString());

    Polygon polygon_3 = factory.createPolygon(new Coordinate[]{
            new Coordinate(0, 11),
            new Coordinate(10, 11),
            new Coordinate(10, 21),
            new Coordinate(0, 21),
            new Coordinate(0, 11),});
    System.out.println(polygon_3.toString());

    Polygon polygon_4 = factory.createPolygon(new Coordinate[]{
            new Coordinate(10, 11),
            new Coordinate(20, 11),
            new Coordinate(20, 21),
            new Coordinate(10, 21),
            new Coordinate(10, 11),});
    System.out.println(polygon_4.toString());

    // 相邻多边形合并
    Geometry union_12 = polygon_1.union(polygon_2);
    System.out.println(union_12.toString());

    // 不相邻多边形合并
    Geometry union_13 = polygon_1.union(polygon_3);
    System.out.println(union_13.toString());

    // 多多边形中某个多边形与另外一个多边形相邻进行合并
    Geometry union_134_ = union_13.union(polygon_4);
    System.out.println(union_134_.toString());
}
# union_12
POLYGON ((10 0, 0 0, 0 10, 10 10, 20 10, 20 0, 10 0))

image.png

# union_13
MULTIPOLYGON (((0 0, 0 10, 10 10, 10 0, 0 0)), ((0 11, 0 21, 10 21, 10 11, 0 11)))

image.png

# union_134
MULTIPOLYGON (((0 0, 0 10, 10 10, 10 0, 0 0)), ((0 11, 0 21, 10 21, 20 21, 20 11, 10 11, 0 11)))

image.png

二 结论

  • 两个相交的多边形合并后会成为一个多边形
  • 两个不相交的多边形合并后会成为一个多多边形
  • 一个多多边形中某个多边形和另外一个多边形相交,合并后内部相交的多边形几何成为一个合并后的多边形
  • 其他几何类型相似

三 其他

var code = “7dc8a9e3-e41b-4a88-8220-0aab59e36986”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值