JAVA区分曲线和直线
我遇到了一个问题,我不知道如何判断给定的(com.esri.arcgis.geometry.Polyline)多段线是否为直线。我的代码适用于直线,但不适用于曲线。我的问题是,我不确定如何从多段线获取点列表,也不确定在获取点列表后如何检查直线是否笔直。代码如下:JAVA区分曲线和直线,java,esri,polyline,Java,Esri,Polyline,我遇到了一个问题,我不知道如何判断给定的(com.esri.arcgis.geometry.Polyline)多段线是否为直线。我的代码适用于直线,但不适用于曲线。我的问题是,我不确定如何从多段线获取点列表,也不确定在获取点列表后如何检查直线是否笔直。代码如下: else if (shape instanceof Polyline) { Polyline line = (Polyline) shape; Point
else if (shape instanceof Polyline) {
Polyline line = (Polyline) shape;
Point lowerLeft = (Point) line.getEnvelope().getLowerLeft();
Point upperRight = (Point) line.getEnvelope().getUpperRight();
Point midpoint = GeometryUtil.getMidpoint(lowerLeft, upperRight);
midpoint.setSpatialReferenceByRef(ActiveMapContainer.getInstance()
.getMapBean().getSpatialReference());
GeometryUtil.projectLatLong(midpoint);
可以使用“getLength()”方法获取多段线上的点数。 您可以使用“getPoint(inti)”方法获取每个点 可能有更好的方法,但我会检查这条线是否是直线: 1.计算第一个点和最后一个点之间的距离。 2.将其与整个多段线的长度进行比较。如果两者相等(可能使用某种可接受的长度差——“delta”),则假定直线是直的。如果它们的差异比“delta”大,则假定直线不是直线