我遇到了一个问题,我不知道如何确定给定的(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);
答案 0 :(得分:1)
您可以使用" getLength()"获取折线上的点数。方法。 您可以使用" getPoint(int i)"获取每个点。方法
可能有更好的方法,但我会检查线是否是直的: 1.计算第一个和最后一个点之间的距离。 2.将其与整条折线的长度进行比较。如果两者相等(可能使用某种可接受的长度差异 - " delta"),则假设线是直的。如果它们的差异大于" delta",则假设该线不是直的。