JAVA将曲线与直线区分开来

时间:2015-07-29 13:26:54

标签: java esri polyline

我遇到了一个问题,我不知道如何确定给定的(com.esri.arcgis.geometry.Polyline)折线是否正确。我的代码适用于直线,但不适用于弯曲。我的问题是我不知道如何从Polyline获得一个点列表,并且不知道如果我得到这个点列表后如何检查线是否是直的。代码如下:

 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);

1 个答案:

答案 0 :(得分:1)

您可以使用" getLength()"获取折线上的点数。方法。 您可以使用" getPoint(int i)"获取每个点。方法

可能有更好的方法,但我会检查线是否是直的: 1.计算第一个和最后一个点之间的距离。 2.将其与整条折线的长度进行比较。如果两者相等(可能使用某种可接受的长度差异 - " delta"),则假设线是直的。如果它们的差异大于" delta",则假设该线不是直的。