JTS geometry 常用方法使用记录(二)
18. 两个几何的差集
public Geometry symDifference(Geometry other) {
if (this.isEmpty() || other.isEmpty()) {
if (this.isEmpty() && other.isEmpty()) {
return OverlayOp.createEmptyResult(4, this, other, this.factory);
}
if (this.isEmpty()) {
return other.copy();
}
if (other.isEmpty()) {
return this.copy();
}
}
checkNotGeometryCollection(this);
checkNotGeometryCollection(other);
return SnapIfNeededOverlayOp.overlayOp(this, other, 4);
}

19.返回几何体的缓冲区(一)
默认样式
public Geometry buffer(double distance) {
return BufferOp.bufferOp(this, distance);
}

20.返回几何体的缓冲区(二)
参数分别是:缓冲区宽度、端点圆弧样式
//线段末端样式public static final int CAP_ROUND = 1; public static final int CAP_FLAT = 2; public static final int CAP_SQUARE = 3;//quadrantSegments 圆弧处,线段数量public static final int JOIN_ROUND = 1; (默认)一个半圆 public static final int JOIN_MITRE = 2; 一条垂直于末端的直线 public static final int JOIN_BEVEL = 3; public static final int DEFAULT_QUADRANT_SEGMENTS = 8;
//源方法
public Geometry buffer(double distance, int quadrantSegments) {
return BufferOp.bufferOp(this, distance, quadrantSegments);
}//调用示例
Geometry buffer = laneToQuery.buffer(bufferDis, BufferParameters.DEFAULT_QUADRANT_SEGMENTS);
圆弧线段数
quadrantSegments参数示例:JOIN_ROUND = 1

quadrantSegments参数示例:JOIN_ROUND = 2
quadrantSegments参数示例:JOIN_ROUND = 3

quadrantSegments参数示例:DEFAULT_QUADRANT_SEGMENTS = 8

21.返回几何体的缓冲区(三)
//源方法
public Geometry buffer(double distance, int quadrantSegments, int endCapStyle) {
return BufferOp.bufferOp(this, distance, quadrantSegments, endCapStyle);
}
//调用示例
Geometry buffer = laneToQuery.buffer(bufferDis, BufferParameters.DEFAULT_QUADRANT_SEGMENTS, BufferParameters.CAP_FLAT);
设置线段末尾端点样式
endCapStyle参数示例:CAP_ROUND = 1 (默认)一个半圆

endCapStyle参数示例:CAP_FLAT = 2 一条垂直于末端的直线

endCapStyle参数示例:CAP_SQUARE = 3

22.返回当前的几何的覆盖面几何
public Geometry convexHull() {
return (new ConvexHull(this)).getConvexHull();
}

参考:SFS-简单要素标准
网址:1.2. II. SFS-简单要素标准 — OGC标准规范 文档 (osgeo.cn)
