目录
一.GeoTools介绍
GeoTools是一套操作和显示地图的开源Java 代码库,提供了一系列符合规范的操作地理空间数据的方法,GeoTools被许多项目使用,在地理信息领域有着广泛的应用。
二.背景
本文介绍的是如何使用GeoTools获取多面几何MultiPolygon的外边界,当我们需要获取几何图形的外边界时,就可以使用此方法。
三.实现代码
下面定义了一个getMultiPolygonBoundary方法,调用这个方法即可实现获取多面几何的外边界。
/**
* 获取多面几何的外边界
* @param multiPolygon 多面几何
* @return
*/
public static MultiPolygon getMultiPolygonBoundary(MultiPolygon multiPolygon){
if (multiPolygon == null){
return creatMultiPolygon_empty();
}
int num = multiPolygon.getNumGeometries();
Polygon[] boundarys = new Polygon[num];
for (int i=0;i<num;i++){
Polygon polygon = (Polygon) multiPolygon.getGeometryN(i);
Polygon boundary = polygon.getFactory().createPolygon(polygon.getExteriorRing().getCoordinates());
boundarys[i] = boundary;
}
GeometryFactory gf = new GeometryFactory();
MultiPolygon res = gf.createMultiPolygon(boundarys);
res.setSRID(multiPolygon.getSRID());
return res;
}