Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA区分曲线和直线_Java_Esri_Polyline - Fatal编程技术网

JAVA区分曲线和直线

JAVA区分曲线和直线,java,esri,polyline,Java,Esri,Polyline,我遇到了一个问题,我不知道如何判断给定的(com.esri.arcgis.geometry.Polyline)多段线是否为直线。我的代码适用于直线,但不适用于曲线。我的问题是,我不确定如何从多段线获取点列表,也不确定在获取点列表后如何检查直线是否笔直。代码如下: else if (shape instanceof Polyline) { Polyline line = (Polyline) shape; Point

我遇到了一个问题,我不知道如何判断给定的(com.esri.arcgis.geometry.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);

可以使用“getLength()”方法获取多段线上的点数。 您可以使用“getPoint(inti)”方法获取每个点

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