com.supermap.analyst.spatialanalyst

类 ProximityAnalyst



  • public class ProximityAnalyst
    extends Object
    邻近分析类。该类用于进行邻近分析,包括生成泰森多边形、最近距离计算和范围距离计算。
    • 方法详细资料

      • createThiessenPolygon

        @Deprecated
        public static DatasetVector createThiessenPolygon(DatasetVector sourcePoint,
                                                                       Datasource outputDatasource,
                                                                       String outputDatasetName,
                                                                       GeoRegion clipRegion)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.createThiessenPolygon(DatasetVector, Datasource, String, GeoRegion, SteppedListener...) 替换。
        根据给定的点数据集生成泰森多边形。

        泰森多边形

        荷兰气候学家 A.H.Thiessen 提出了一种根据离散分布的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角形,作这些三角形各边的垂直平分线,于是每个气象站周围的若干垂直平分线便围成一个多边形。用这个多边形内所包含的一个唯一气象站的降雨强度来表示这个多边形区域内的降雨强度,并称这个多边形为泰森多边形。

        泰森多边形的特性

        1. 每个泰森多边形内仅含有一个离散点数据;
        2. 泰森多边形内的点到相应离散点的距离最近;
        3. 位于泰森多边形边上的点到其两边的离散点的距离相等。

        泰森多边形可用于定性分析、统计分析、邻近分析等。例如,可以用离散点的性质来描述泰森多边形区域的性质;可用离散点的数据来计算泰森多边形区域的数据;判断一个离散点与其它哪些离散点相邻时,可根据泰森多边形直接得出,且若泰森多边形是n边形,则就与n个离散点相邻;当某一数据点落入某一泰森多边形中时,它与相应的离散点最邻近,无需计算距离。

        邻近分析是 GIS 领域里又一个最为基础的分析功能之一,邻近分析是用来发现事物之间的某种邻近关系。邻近分析类所提供的进行邻近分析的方法都是实现泰森多边形的建立,就是根据所提供的点数据建立泰森多边形,从而获得点之间的邻近关系。

        泰森多边形用于将点集合中的点的周围区域分配给相应的点,使位于这个点所拥有的区域(即该点所关联的泰森多边形)内的任何地点离这个点的距离都要比离其他点的距离要小,同时,所建立的泰森多边形还满足上述所有的泰森多边形法的理论。

        泰森多边形是如何创建的?利用下面的图示来理解泰森多边形建立的过程:

        1. 对待建立泰森多边形的点数据进行由左向右,由上到下的扫描,如果某个点距离之前刚刚扫描过的点的距离小于给定的邻近容限值,那么分析时将忽略该点;
        2. 基于扫描检查后符合要求的所有点建立不规则三角网,即构建 Delaunay 三角网;
        3. 画出每个三角形边的中垂线,由这些中垂线构成泰森多边形的边,而中垂线的交点是相应的泰森多边形的顶点;
        4. 用于建立泰森多边形的点的点位将成为相应的泰森多边形的锚点。

        参数:
        sourcePoint - 用于生成泰森多边形的点数据集。
        outputDatasource - 用于保存结果的数据源。
        outputDatasetName - 指定的结果数据集的名称。
        clipRegion - 指定的结果数据集的裁剪区域。该参数可以为 null,标志对结果数据集不进行裁剪。
        返回:
        存放泰森多形的结果数据集。
        示范代码:
        以下代码示范了如何根据给定的点数据集生成泰森多边形。
         public void ThiessenPolygonFromDataset() {
                // 返回用来生成泰森多边形的点数据集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new DatasourceConnectionInfo( "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(datasourceConnectionInfo);
                DatasetVector datasetSchool = (DatasetVector) targetDatasource.getDatasets().get("School");
        
                // 返回一个合法的名称为生成的泰森多边形面数据集的名称
                String resultDatasetName = targetDatasource.getDatasets().getAvailableDatasetName("thiessenPolygon");
        
                // 调用邻近分析类的生成泰森多边形的方法生成泰森多边形,返回得结果数据集
                DatasetVector thiessenPolygonDataset = ProximityAnalyst.createThiessenPolygon(datasetSchool, targetDatasource, resultDatasetName, null);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • createThiessenPolygon

        public static DatasetVector createThiessenPolygon(DatasetVector sourcePoint,
                                                          Datasource outputDatasource,
                                                          String outputDatasetName,
                                                          GeoRegion clipRegion,
                                                          SteppedListener... listeners)
        根据给定的点数据集生成泰森多边形。

        泰森多边形

        荷兰气候学家 A.H.Thiessen 提出了一种根据离散分布的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角形,作这些三角形各边的垂直平分线,于是每个气象站周围的若干垂直平分线便围成一个多边形。用这个多边形内所包含的一个唯一气象站的降雨强度来表示这个多边形区域内的降雨强度,并称这个多边形为泰森多边形。

        泰森多边形的特性

        1. 每个泰森多边形内仅含有一个离散点数据;
        2. 泰森多边形内的点到相应离散点的距离最近;
        3. 位于泰森多边形边上的点到其两边的离散点的距离相等。

        泰森多边形可用于定性分析、统计分析、邻近分析等。例如,可以用离散点的性质来描述泰森多边形区域的性质;可用离散点的数据来计算泰森多边形区域的数据;判断一个离散点与其它哪些离散点相邻时,可根据泰森多边形直接得出,且若泰森多边形是n边形,则就与n个离散点相邻;当某一数据点落入某一泰森多边形中时,它与相应的离散点最邻近,无需计算距离。

        邻近分析是 GIS 领域里又一个最为基础的分析功能之一,邻近分析是用来发现事物之间的某种邻近关系。邻近分析类所提供的进行邻近分析的方法都是实现泰森多边形的建立,就是根据所提供的点数据建立泰森多边形,从而获得点之间的邻近关系。

        泰森多边形用于将点集合中的点的周围区域分配给相应的点,使位于这个点所拥有的区域(即该点所关联的泰森多边形)内的任何地点离这个点的距离都要比离其他点的距离要小,同时,所建立的泰森多边形还满足上述所有的泰森多边形法的理论。

        泰森多边形是如何创建的?利用下面的图示来理解泰森多边形建立的过程:

        1. 对待建立泰森多边形的点数据进行由左向右,由上到下的扫描,如果某个点距离之前刚刚扫描过的点的距离小于给定的邻近容限值,那么分析时将忽略该点;
        2. 基于扫描检查后符合要求的所有点建立不规则三角网,即构建 Delaunay 三角网;
        3. 画出每个三角形边的中垂线,由这些中垂线构成泰森多边形的边,而中垂线的交点是相应的泰森多边形的顶点;
        4. 用于建立泰森多边形的点的点位将成为相应的泰森多边形的锚点。

        参数:
        sourcePoint - 用于生成泰森多边形的点数据集。
        outputDatasource - 用于保存结果的数据源。
        outputDatasetName - 指定的结果数据集的名称。
        clipRegion - 指定的结果数据集的裁剪区域。该参数可以为 null,标志对结果数据集不进行裁剪。
        listeners - 用于接收进度条事件的监听器。
        返回:
        存放泰森多形的结果数据集。
        示范代码:
        以下代码示范了如何根据给定的点数据集生成泰森多边形。
         public void ThiessenPolygonFromDataset() {
                // 返回用来生成泰森多边形的点数据集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new DatasourceConnectionInfo( "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(datasourceConnectionInfo);
                DatasetVector datasetSchool = (DatasetVector) targetDatasource.getDatasets().get("School");
        
                // 返回一个合法的名称为生成的泰森多边形面数据集的名称
                String resultDatasetName = targetDatasource.getDatasets().getAvailableDatasetName("thiessenPolygon");
        
                // 调用邻近分析类的生成泰森多边形的方法生成泰森多边形,返回得结果数据集
                DatasetVector thiessenPolygonDataset = ProximityAnalyst.createThiessenPolygon(datasetSchool, targetDatasource, resultDatasetName, null);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • createThiessenPolygon

        public static DatasetVector createThiessenPolygon(Recordset sourcePointRecordset,
                                                          Datasource outputDatasource,
                                                          String outputDatasetName,
                                                          GeoRegion clipRegion,
                                                          SteppedListener... listeners)
        根据给定的点记录集生成泰森多边形。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePointRecordset - 用于生成泰森多边形的点记录集。
        outputDatasource - 用于保存结果的数据源。
        outputDatasetName - 指定的结果数据集的名称。
        clipRegion - 指定的结果数据集的裁剪区域。该参数可以为 null,标志对结果数据集不进行裁剪。
        listeners - 用于接收进度条事件的监听器。
        返回:
        存放泰森多形的结果数据集。
      • createThiessenPolygon

        @Deprecated
        public static DatasetVector createThiessenPolygon(Point2Ds sourcePoints,
                                                                       Datasource outputDatasource,
                                                                       String outputDatasetName,
                                                                       GeoRegion clipRegion)
        根据给定的点集合生成泰森多边形。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePoints - 用于生成泰森多边形的点集合。
        outputDatasource - 用于保存结果的数据源。
        outputDatasetName - 指定的结果数据集的名称。
        clipRegion - 指定的结果数据集的裁剪区域。该参数可以为 null,标志对结果数据集不进行裁剪。
        返回:
        存放泰森多形的结果数据集。
        示范代码:
        以下代码示范了如何根据给定的点集合生成泰森多边形并返回泰森多边形结果数据集。假设:有6个采样点的坐标数据,将为这6个点建立泰森多边形:samplePoint1 (102.70,31.73),samplePoint2 (102.64,31.69),samplePoint3 (102.71,31.64),samplePoint4 (102.66,31.60),samplePoint5 (102.79,31.63),samplePoint6 (102.76,31.59).
          public void ThiessenPolygonFromPts() {
        
                // 打开用于存储泰森多边形结果的数据源
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new DatasourceConnectionInfo("G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(datasourceConnectionInfo);
        
                // 返回一个合法的名称为生成的泰森多边形面数据集的名称
                String resultDatasetName = targetDatasource.getDatasets().getAvailableDatasetName("thiessenPolygon");
        
                // 构成一个含有六个点的点集合,用于建立泰森多边形
                Point2Ds pointsCollection = new Point2Ds();
                pointsCollection.add(new Point2D(102.70, 31.73));
                pointsCollection.add(new Point2D(102.64, 31.69));
                pointsCollection.add(new Point2D(102.71, 31.64));
                pointsCollection.add(new Point2D(102.66, 31.60));
                pointsCollection.add(new Point2D(102.79, 31.63));
                pointsCollection.add(new Point2D(102.76, 31.59));
        
                // 调用利用点集合生成泰森多边形的方法生成泰森多边形并返回结果
                DatasetVector thiessenPolygonDataset = ProximityAnalyst.createThiessenPolygon(pointsCollection, targetDatasource, resultDatasetName, null);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • createThiessenPolygon

        public static DatasetVector createThiessenPolygon(Point2Ds sourcePoints,
                                                          Datasource outputDatasource,
                                                          String outputDatasetName,
                                                          GeoRegion clipRegion,
                                                          SteppedListener... listeners)
        根据给定的点集合生成泰森多边形。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePoints - 用于生成泰森多边形的点集合。
        outputDatasource - 用于保存结果的数据源。
        outputDatasetName - 指定的结果数据集的名称。
        clipRegion - 指定的结果数据集的裁剪区域。该参数可以为 null,标志对结果数据集不进行裁剪。
        listeners - 用于接收进度条事件的监听器。
        返回:
        存放泰森多形的结果数据集。
        示范代码:
        以下代码示范了如何根据给定的点集合生成泰森多边形并返回泰森多边形结果数据集。假设:有6个采样点的坐标数据,将为这6个点建立泰森多边形:samplePoint1 (102.70,31.73),samplePoint2 (102.64,31.69),samplePoint3 (102.71,31.64),samplePoint4 (102.66,31.60),samplePoint5 (102.79,31.63),samplePoint6 (102.76,31.59).
          public void ThiessenPolygonFromPts() {
        
                // 打开用于存储泰森多边形结果的数据源
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new DatasourceConnectionInfo("G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(datasourceConnectionInfo);
        
                // 返回一个合法的名称为生成的泰森多边形面数据集的名称
                String resultDatasetName = targetDatasource.getDatasets().getAvailableDatasetName("thiessenPolygon");
        
                // 构成一个含有六个点的点集合,用于建立泰森多边形
                Point2Ds pointsCollection = new Point2Ds();
                pointsCollection.add(new Point2D(102.70, 31.73));
                pointsCollection.add(new Point2D(102.64, 31.69));
                pointsCollection.add(new Point2D(102.71, 31.64));
                pointsCollection.add(new Point2D(102.66, 31.60));
                pointsCollection.add(new Point2D(102.79, 31.63));
                pointsCollection.add(new Point2D(102.76, 31.59));
        
                // 调用利用点集合生成泰森多边形的方法生成泰森多边形并返回结果
                DatasetVector thiessenPolygonDataset = ProximityAnalyst.createThiessenPolygon(pointsCollection, targetDatasource, resultDatasetName, null);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • createThiessenPolygon

        public static GeoRegion[] createThiessenPolygon(DatasetVector sourcePoint,
                                                        GeoRegion clipRegion,
                                                        SteppedListener... listeners)
        根据给定的点数据集生成泰森多边形。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePoint - 用于生成泰森多边形的点数据集。
        clipRegion - 指定的裁剪结果数据的裁剪区域。该参数可以为 null,标志对结果数据不进行裁剪。
        listeners - 用于接收进度条事件的监听器。
        返回:
        泰森多边形所对应的面几何对象数组。
      • createThiessenPolygon

        @Deprecated
        public static GeoRegion[] createThiessenPolygon(Recordset sourcePointRecordset,
                                                                     GeoRegion clipRegion)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.createThiessenPolygon(Recordset sourcePointRecordset, GeoRegion clipRegion, SteppedListener... listeners) 替换。
        根据给定的点记录集生成泰森多边形,假设通过查询返回用于建立泰森多边形的点记录集。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePointRecordset - 用于生成泰森多边形的点记录集。
        clipRegion - 指定的裁剪结果数据的裁剪区域。该参数可以为 null,标志对结果数据不进行裁剪。
        返回:
        泰森多边形所对应的面几何对象数组。
        示范代码:
        以下代码示范了如何根据给定的点记录集生成泰森多边形。
          public GeoRegion[] ThiessenPolygonFromRecordset() {
                // 通过查询返回点记录集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
                DatasetVector datasetSchool = (DatasetVector) targetDatasource.
                                              getDatasets().get("School");
                QueryParameter queryParam = new QueryParameter();
                queryParam.setAttributeFilter("SmID>100");
                queryParam.setHasGeometry(true);
                Recordset queryResult = datasetSchool.query(queryParam);
        
                // 调用利用点记录集生成泰森多边形的方法生成泰森多边形并返回结果
                GeoRegion[] thiessenPolygons = ProximityAnalyst.createThiessenPolygon(
                        queryResult, null);
        
                // 释放工作空间占有的资源
                workspace.dispose();
        
                return thiessenPolygons;
            }
      • createThiessenPolygon

        public static GeoRegion[] createThiessenPolygon(Recordset sourcePointRecordset,
                                                        GeoRegion clipRegion,
                                                        SteppedListener... listeners)
        根据给定的点记录集生成泰森多边形,假设通过查询返回用于建立泰森多边形的点记录集。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePointRecordset - 用于生成泰森多边形的点记录集。
        clipRegion - 指定的裁剪结果数据的裁剪区域。该参数可以为 null,标志对结果数据不进行裁剪。
        listeners - 用于接收进度条事件的监听器。
        返回:
        泰森多边形所对应的面几何对象数组。
        示范代码:
        以下代码示范了如何根据给定的点记录集生成泰森多边形。
          public GeoRegion[] ThiessenPolygonFromRecordset() {
                // 通过查询返回点记录集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
                DatasetVector datasetSchool = (DatasetVector) targetDatasource.
                                              getDatasets().get("School");
                QueryParameter queryParam = new QueryParameter();
                queryParam.setAttributeFilter("SmID>100");
                queryParam.setHasGeometry(true);
                Recordset queryResult = datasetSchool.query(queryParam);
        
                // 调用利用点记录集生成泰森多边形的方法生成泰森多边形并返回结果
                GeoRegion[] thiessenPolygons = ProximityAnalyst.createThiessenPolygon(
                        queryResult, null);
        
                // 释放工作空间占有的资源
                workspace.dispose();
        
                return thiessenPolygons;
            }
      • createThiessenPolygon

        @Deprecated
        public static GeoRegion[] createThiessenPolygon(Point2Ds sourcePoints,
                                                                     GeoRegion clipRegion)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.createThiessenPolygon(Point2Ds, GeoRegion, SteppedListener...) 替换。
        根据给定的点集合生成泰森多边形。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePoints - 用于生成泰森多边形的点集合。
        clipRegion - 指定的裁剪结果数据的裁剪区域。该参数可以为 null,标志对结果数据不进行裁剪。
        返回:
        泰森多边形所对应的面几何对象数组。
        示范代码:
        以下代码示范了如何根据给定的点集合生成泰森多边形, 假设:有6个采样点的坐标数据,将为这6个点建立泰森多边形:samplePoint1 (102.70,31.73),samplePoint2 (102.64,31.69),samplePoint3 (102.71,31.64),samplePoint4 (102.66,31.60),samplePoint5 (102.79,31.63),samplePoint6 (102.76,31.59).
          public GeoRegion[] ThiessenPolygonFromPoints() {
                // 构成一个含有六个点的点集合,用于建立泰森多边形
                Point2Ds pointsCollection = new Point2Ds();
                pointsCollection.add(new Point2D(102.70, 31.73));
                pointsCollection.add(new Point2D(102.64, 31.69));
                pointsCollection.add(new Point2D(102.71, 31.64));
                pointsCollection.add(new Point2D(102.66, 31.60));
                pointsCollection.add(new Point2D(102.79, 31.63));
                pointsCollection.add(new Point2D(102.76, 31.59));
        
                // 调用利用点集合生成泰森多边形的方法生成泰森多边形并返回结果
                GeoRegion[] thiessenPolygons = ProximityAnalyst.createThiessenPolygon(
                        pointsCollection, null);
        
                return thiessenPolygons;
            }
      • createThiessenPolygon

        public static GeoRegion[] createThiessenPolygon(Point2Ds sourcePoints,
                                                        GeoRegion clipRegion,
                                                        SteppedListener... listeners)
        根据给定的点集合生成泰森多边形。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePoints - 用于生成泰森多边形的点集合。
        clipRegion - 指定的裁剪结果数据的裁剪区域。该参数可以为 null,标志对结果数据不进行裁剪。
        listeners - 用于接收进度条事件的监听器。
        返回:
        泰森多边形所对应的面几何对象数组。
        示范代码:
        以下代码示范了如何根据给定的点集合生成泰森多边形, 假设:有6个采样点的坐标数据,将为这6个点建立泰森多边形:samplePoint1 (102.70,31.73),samplePoint2 (102.64,31.69),samplePoint3 (102.71,31.64),samplePoint4 (102.66,31.60),samplePoint5 (102.79,31.63),samplePoint6 (102.76,31.59).
          public GeoRegion[] ThiessenPolygonFromPoints() {
                // 构成一个含有六个点的点集合,用于建立泰森多边形
                Point2Ds pointsCollection = new Point2Ds();
                pointsCollection.add(new Point2D(102.70, 31.73));
                pointsCollection.add(new Point2D(102.64, 31.69));
                pointsCollection.add(new Point2D(102.71, 31.64));
                pointsCollection.add(new Point2D(102.66, 31.60));
                pointsCollection.add(new Point2D(102.79, 31.63));
                pointsCollection.add(new Point2D(102.76, 31.59));
        
                // 调用利用点集合生成泰森多边形的方法生成泰森多边形并返回结果
                GeoRegion[] thiessenPolygons = ProximityAnalyst.createThiessenPolygon(
                        pointsCollection, null);
        
                return thiessenPolygons;
            }
      • computeMinDistance

        @Deprecated
        public static boolean computeMinDistance(Recordset sourceRecordset,
                                                              Recordset referenceRecordset,
                                                              double minDistance,
                                                              double maxDistance,
                                                              Datasource outputDatasource,
                                                              String outputDatasetName)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.computeMinDistance(Recordset, Recordset, double, double, Datasource, String, SteppedListener...) 替换。
        最近距离计算。求算“被计算记录集”中每一个对象到“参考记录集”中在查询范围内的所有对象的距离中的最小值(即最近距离),并将最近距离信息保存到一个新的属性表数据集中。

        最近距离计算功能用于计算“被计算记录集”中每一个对象(称为“被计算对象”)到“参考记录集”中在查询范围内的所有对象(称为“参考对象”)的距离中的最小值,也就是最近距离,计算的结果为一个纯属性表数据集,记录了“被计算对象”到最近的“参考对象”的距离信息,使用三个属性字段存储,分别为:Source_ID(“被计算对象”的 SMID)、根据参考对象的类型可能为 Point_ID、Line_ID、Region_ID(“参考对象”的 SMID)以及 Distance(前面二者的距离值)。如果被计算对象与多个参考对象具有最近距离,则属性表中相应的添加多条记录。

        • 支持的数据类型

          “被计算记录集”仅支持二维点记录集,“参考记录集”可以是为从二维点、线、面数据集以及二维网络数据集获得的记录集。从二维网络数据集可以获得存有弧段的记录集,或存有结点的记录集(从网络数据集的子集获取),将这两种记录集作为“参考记录集”,可用于查找最近的弧段或最近的结点。

          “被计算记录集”和“参考记录集”可以是同一个记录集,也可以是从同一个数据集查询出的不同记录集,这两种情况下,不会计算对象到自身的距离。

        • 查询范围

          查询范围由用户指定的一个最小距离和一个最大距离构成,用于过滤不参与计算的“参考对象”,即从“被计算对象”出发,只有与其距离介于最小距离和最大距离之间(包括等于)的“参考对象”参与计算。如果将查询范围设置为从“0”到“-1”,则表示计算到“参考记录集”中所有对象的最近距离。

          如下图所示,红色圆点来自“被计算记录集”,方块来自“参考记录集”,粉色区域表示查询范围,则只有位于查询范围内的蓝色方块参与最近距离计算,也就是说本例的计算的结果只包含红色圆点与距其最近的蓝色方块的 SMID 和距离值。

        • 注意事项:

          1. “被计算记录集”和“参考记录集”所属的数据集的必须具有相同的坐标系。
          2. 如下图所示,点到线对象的距离,是计算点到整个线对象的最小距离,即在线上找到一点与被计算点的距离最短;同样的,点到面对象的距离,是计算点到面对象的整个边界的最小距离。
          3. 计算两个对象间距离时,出现包含或(部分)重叠的情况时,距离均为 0。例如点对象在线对象上,二者间距离为 0。
        参数:
        sourceRecordset - 指定的被计算记录集。只支持二维点记录集。
        referenceRecordset - 指定的参考记录集。支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。单位与被计算记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0 的值及 -1。当设置为 -1 时,表示不限制最大距离。单位与被计算记录集所属数据集的单位相同。
        outputDatasource - 指定的用于存储结果属性表数据集的数据源。
        outputDatasetName - 指定的结果属性表数据集的名称。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。
      • computeMinDistance

        public static boolean computeMinDistance(Recordset sourceRecordset,
                                                 Recordset referenceRecordset,
                                                 double minDistance,
                                                 double maxDistance,
                                                 Datasource outputDatasource,
                                                 String outputDatasetName,
                                                 SteppedListener... listeners)
        最近距离计算。求算“被计算记录集”中每一个对象到“参考记录集”中在查询范围内的所有对象的距离中的最小值(即最近距离),并将最近距离信息保存到一个新的属性表数据集中。

        最近距离计算功能用于计算“被计算记录集”中每一个对象(称为“被计算对象”)到“参考记录集”中在查询范围内的所有对象(称为“参考对象”)的距离中的最小值,也就是最近距离,计算的结果为一个纯属性表数据集,记录了“被计算对象”到最近的“参考对象”的距离信息,使用三个属性字段存储,分别为:Source_ID(“被计算对象”的 SMID)、根据参考对象的类型可能为 Point_ID、Line_ID、Region_ID(“参考对象”的 SMID)以及 Distance(前面二者的距离值)。如果被计算对象与多个参考对象具有最近距离,则属性表中相应的添加多条记录。

        • 支持的数据类型

          “被计算记录集”仅支持二维点记录集,“参考记录集”可以是为从二维点、线、面数据集以及二维网络数据集获得的记录集。从二维网络数据集可以获得存有弧段的记录集,或存有结点的记录集(从网络数据集的子集获取),将这两种记录集作为“参考记录集”,可用于查找最近的弧段或最近的结点。

          “被计算记录集”和“参考记录集”可以是同一个记录集,也可以是从同一个数据集查询出的不同记录集,这两种情况下,不会计算对象到自身的距离。

        • 查询范围

          查询范围由用户指定的一个最小距离和一个最大距离构成,用于过滤不参与计算的“参考对象”,即从“被计算对象”出发,只有与其距离介于最小距离和最大距离之间(包括等于)的“参考对象”参与计算。如果将查询范围设置为从“0”到“-1”,则表示计算到“参考记录集”中所有对象的最近距离。

          如下图所示,红色圆点来自“被计算记录集”,方块来自“参考记录集”,粉色区域表示查询范围,则只有位于查询范围内的蓝色方块参与最近距离计算,也就是说本例的计算的结果只包含红色圆点与距其最近的蓝色方块的 SMID 和距离值。

        • 注意事项:

          1. “被计算记录集”和“参考记录集”所属的数据集的必须具有相同的坐标系。
          2. 如下图所示,点到线对象的距离,是计算点到整个线对象的最小距离,即在线上找到一点与被计算点的距离最短;同样的,点到面对象的距离,是计算点到面对象的整个边界的最小距离。
          3. 计算两个对象间距离时,出现包含或(部分)重叠的情况时,距离均为 0。例如点对象在线对象上,二者间距离为 0。
        参数:
        sourceRecordset - 指定的被计算记录集。只支持二维点记录集。
        referenceRecordset - 指定的参考记录集。支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。单位与被计算记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0 的值及 -1。当设置为 -1 时,表示不限制最大距离。单位与被计算记录集所属数据集的单位相同。
        outputDatasource - 指定的用于存储结果属性表数据集的数据源。
        outputDatasetName - 指定的结果属性表数据集的名称。
        listeners - 用于接收进度条事件的监听器。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。
      • computeMinDistance

        @Deprecated
        public static boolean computeMinDistance(Geometry[] sourceGeometries,
                                                              Recordset referenceRecordset,
                                                              double minDistance,
                                                              double maxDistance,
                                                              Datasource outputDatasource,
                                                              String outputDatasetName)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.computeMinDistance(Geometry[], Recordset, double, double, Datasource, String, SteppedListener...) 替换。
        最近距离计算。求算“被计算几何对象集合”中每一个对象到“参考记录集”中在查询范围内的所有对象的距离中的最小值(即最近距离),并将最近距离信息保存到一个新的属性表数据集中。

        有关距离计算的详细介绍,请参阅另一重载方法 computeMinDistance 的介绍。与该方法不同的是,此方法涉及的被计算对象要求以几何对象数组的形式给出。

        参数:
        sourceGeometries - 指定的被计算几何对象集合。只支持二维点对象。
        referenceRecordset - 指定的参考记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。单位与参考记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0 的值及 -1。当设置为 -1 时,表示不限制最大距离。单位与参考记录集所属数据集的单位相同。
        outputDatasource - 指定的用于存储结果属性表数据集的数据源。
        outputDatasetName - 指定的结果属性表数据集的名称。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。
      • computeMinDistance

        public static boolean computeMinDistance(Geometry[] sourceGeometries,
                                                 Recordset referenceRecordset,
                                                 double minDistance,
                                                 double maxDistance,
                                                 Datasource outputDatasource,
                                                 String outputDatasetName,
                                                 SteppedListener... listeners)
        最近距离计算。求算“被计算几何对象集合”中每一个对象到“参考记录集”中在查询范围内的所有对象的距离中的最小值(即最近距离),并将最近距离信息保存到一个新的属性表数据集中。

        有关距离计算的详细介绍,请参阅另一重载方法 computeMinDistance 的介绍。与该方法不同的是,此方法涉及的被计算对象要求以几何对象数组的形式给出。

        参数:
        sourceGeometries - 指定的被计算几何对象集合。只支持二维点对象。
        referenceRecordset - 指定的参考记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。单位与参考记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0 的值及 -1。当设置为 -1 时,表示不限制最大距离。单位与参考记录集所属数据集的单位相同。
        outputDatasource - 指定的用于存储结果属性表数据集的数据源。
        outputDatasetName - 指定的结果属性表数据集的名称。
        listeners - 用于接收进度条事件的监听器。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。
      • computeMinDistance

        @Deprecated
        public static ComputeDistanceResult[] computeMinDistance(Recordset sourceRecordset,
                                                                              Recordset referenceRecordset,
                                                                              double minDistance,
                                                                              double maxDistance)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.computeMinDistance(Recordset, Recordset, double, double, SteppedListener...) 替换。
        最近距离计算。求算“被计算记录集”中每一个对象到“参考记录集”中在查询范围内的所有对象的距离中的最小值(即最近距离),并将最近距离信息返回到距离计算结果数组中。

        有关距离计算的详细介绍,请参阅另一重载方法 computeMinDistance 的介绍。

        此方法将计算的结果返回到一个距离计算结果(ComputeDistanceResult)对象数组中,从每一个 ComputeDistanceResult 对象可以获得一个“被计算对象”的最近距离结果,包括“被计算对象”的 SMID、与“被计算对象”具有最近距离的“参考对象”的 SMID 数组和对应的距离值。

        参数:
        sourceRecordset - 指定的被计算记录集。只支持二维点记录集。
        referenceRecordset - 指定的参考记录集。支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。单位与被计算记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0 的值及 -1。当设置为 -1 时,表示不限制最大距离。单位与被计算记录集所属数据集的单位相同。
        返回:
        距离计算结果数组。
      • computeMinDistance

        public static ComputeDistanceResult[] computeMinDistance(Recordset sourceRecordset,
                                                                 Recordset referenceRecordset,
                                                                 double minDistance,
                                                                 double maxDistance,
                                                                 SteppedListener... listeners)
        最近距离计算。求算“被计算记录集”中每一个对象到“参考记录集”中在查询范围内的所有对象的距离中的最小值(即最近距离),并将最近距离信息返回到距离计算结果数组中。

        有关距离计算的详细介绍,请参阅另一重载方法 computeMinDistance 的介绍。

        此方法将计算的结果返回到一个距离计算结果(ComputeDistanceResult)对象数组中,从每一个 ComputeDistanceResult 对象可以获得一个“被计算对象”的最近距离结果,包括“被计算对象”的 SMID、与“被计算对象”具有最近距离的“参考对象”的 SMID 数组和对应的距离值。

        参数:
        sourceRecordset - 指定的被计算记录集。只支持二维点记录集。
        referenceRecordset - 指定的参考记录集。支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。单位与被计算记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0 的值及 -1。当设置为 -1 时,表示不限制最大距离。单位与被计算记录集所属数据集的单位相同。
        listeners - 用于接收进度条事件的监听器。
        返回:
        距离计算结果数组。
      • computeMinDistance

        @Deprecated
        public static ComputeDistanceResult[] computeMinDistance(Geometry[] sourceGeometries,
                                                                              Recordset referenceRecordset,
                                                                              double minDistance,
                                                                              double maxDistance)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.computeMinDistance(Geometry[], Recordset, double, double, SteppedListener...) 替换。
        最近距离计算。求算“被计算几何对象集合”中每一个对象到“参考记录集”中在查询范围内的所有对象的距离中的最小值(即最近距离),并将最近距离信息返回到距离计算结果数组中。

        有关距离计算的详细介绍,请参阅另一重载方法 computeMinDistance 的介绍。与该方法不同的是,此方法涉及的被计算对象要求以几何对象数组的形式给出。

        此方法将计算的结果返回到一个距离计算结果(ComputeDistanceResult)对象数组中,从每一个 ComputeDistanceResult 对象可以获得一个“被计算对象”的最近距离结果,包括“被计算对象”的 SMID、与“被计算对象”具有最近距离的“参考对象”的 SMID 数组和对应的距离值。

        参数:
        sourceGeometries - 指定的被计算几何对象集合。只支持二维点对象。
        referenceRecordset - 指定的参考记录集。支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。单位与参考记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0 的值及 -1。当设置为 -1 时,表示不限制最大距离。单位与参考记录集所属数据集的单位相同。
        返回:
        距离计算结果数组。
      • computeMinDistance

        public static ComputeDistanceResult[] computeMinDistance(Geometry[] sourceGeometries,
                                                                 Recordset referenceRecordset,
                                                                 double minDistance,
                                                                 double maxDistance,
                                                                 SteppedListener... listeners)
        最近距离计算。求算“被计算几何对象集合”中每一个对象到“参考记录集”中在查询范围内的所有对象的距离中的最小值(即最近距离),并将最近距离信息返回到距离计算结果数组中。

        有关距离计算的详细介绍,请参阅另一重载方法 computeMinDistance 的介绍。与该方法不同的是,此方法涉及的被计算对象要求以几何对象数组的形式给出。

        此方法将计算的结果返回到一个距离计算结果(ComputeDistanceResult)对象数组中,从每一个 ComputeDistanceResult 对象可以获得一个“被计算对象”的最近距离结果,包括“被计算对象”的 SMID、与“被计算对象”具有最近距离的“参考对象”的 SMID 数组和对应的距离值。

        参数:
        sourceGeometries - 指定的被计算几何对象集合。只支持二维点对象。
        referenceRecordset - 指定的参考记录集。支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。单位与参考记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0 的值及 -1。当设置为 -1 时,表示不限制最大距离。单位与参考记录集所属数据集的单位相同。
        listeners - 用于接收进度条事件的监听器。
        返回:
        距离计算结果数组。
      • computeRangeDistance

        @Deprecated
        public static boolean computeRangeDistance(Recordset sourceRecordset,
                                                                Recordset referenceRecordset,
                                                                double minDistance,
                                                                double maxDistance,
                                                                Datasource outputDatasource,
                                                                String outputDatasetName)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.computeRangeDistance(Recordset, Recordset, double, double, Datasource, String, SteppedListener...) 替换。
        范围距离计算。求算“被计算记录集”中每一个对象到“参考记录集”中在查询范围内的每一个对象的距离,并将距离信息保存到一个新的属性表数据集中。

        该功能用于计算记录集 A 中每一个对象到记录集 B 中在查询范围内的每一个对象的距离,记录集 A 称为“被计算记录集”,当中的对象称作“被计算对象”,记录集 B 称为“参考记录集”,当中的对象称作“参考对象”。“被计算记录集”和“参考记录集”可以是同一个记录集,也可以是从同一个数据集查询出的不同记录集,这两种情况下,不会计算对象到自身的距离。

        查询范围由一个最小距离和一个最大距离构成,用于过滤不参与计算的“参考对象”,即从“被计算对象”出发,只有与其距离介于最小距离和最大距离之间(包括等于)的“参考对象”参与计算。

        如下图所示,红色圆点为“被计算对象”,方块为“参考对象”,粉色区域表示查询范围,则只有位于查询范围内的蓝色方块参与距离计算,也就是说本例的计算的结果只包含红色圆点与粉色区域内的蓝色方块的 SMID 和距离值。

        范围距离计算的结果为一个纯属性表数据集,记录了“被计算对象”到“参考对象”的距离信息,使用三个属性字段存储,分别为:Source_ID(“被计算对象”的 SMID)、根据参考对象的类型可能为 Point_ID、Line_ID、Region_ID(“参考对象”的 SMID)以及 Distance(前面二者的距离值)。

        注意事项:

        1. “被计算记录集”和“参考记录集”所属的数据集的必须具有相同的坐标系。
        2. 如下图所示,点到线对象的距离,是计算点到整个线对象的最小距离,即在线上找到一点与被计算点的距离最短;同样的,点到面对象的距离,是计算点到面对象的整个边界的最小距离。
        3. 计算两个对象间距离时,出现包含或(部分)重叠的情况时,距离均为 0。例如点对象在线对象上,二者间距离为 0。
        参数:
        sourceRecordset - 指定的被计算记录集。只支持二维点记录集。
        referenceRecordset - 指定的参考记录集。只支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。 单位与被计算记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于或等于 0,且必须大于或等于最小距离。单位与被计算记录集所属数据集的单位相同。
        outputDatasource - 指定的用于存储结果属性表数据集的数据源。
        outputDatasetName - 指定的结果属性表数据集的名称。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。
      • computeRangeDistance

        public static boolean computeRangeDistance(Recordset sourceRecordset,
                                                   Recordset referenceRecordset,
                                                   double minDistance,
                                                   double maxDistance,
                                                   Datasource outputDatasource,
                                                   String outputDatasetName,
                                                   SteppedListener... listeners)
        范围距离计算。求算“被计算记录集”中每一个对象到“参考记录集”中在查询范围内的每一个对象的距离,并将距离信息保存到一个新的属性表数据集中。

        该功能用于计算记录集 A 中每一个对象到记录集 B 中在查询范围内的每一个对象的距离,记录集 A 称为“被计算记录集”,当中的对象称作“被计算对象”,记录集 B 称为“参考记录集”,当中的对象称作“参考对象”。“被计算记录集”和“参考记录集”可以是同一个记录集,也可以是从同一个数据集查询出的不同记录集,这两种情况下,不会计算对象到自身的距离。

        查询范围由一个最小距离和一个最大距离构成,用于过滤不参与计算的“参考对象”,即从“被计算对象”出发,只有与其距离介于最小距离和最大距离之间(包括等于)的“参考对象”参与计算。

        如下图所示,红色圆点为“被计算对象”,方块为“参考对象”,粉色区域表示查询范围,则只有位于查询范围内的蓝色方块参与距离计算,也就是说本例的计算的结果只包含红色圆点与粉色区域内的蓝色方块的 SMID 和距离值。

        范围距离计算的结果为一个纯属性表数据集,记录了“被计算对象”到“参考对象”的距离信息,使用三个属性字段存储,分别为:Source_ID(“被计算对象”的 SMID)、根据参考对象的类型可能为 Point_ID、Line_ID、Region_ID(“参考对象”的 SMID)以及 Distance(前面二者的距离值)。

        注意事项:

        1. “被计算记录集”和“参考记录集”所属的数据集的必须具有相同的坐标系。
        2. 如下图所示,点到线对象的距离,是计算点到整个线对象的最小距离,即在线上找到一点与被计算点的距离最短;同样的,点到面对象的距离,是计算点到面对象的整个边界的最小距离。
        3. 计算两个对象间距离时,出现包含或(部分)重叠的情况时,距离均为 0。例如点对象在线对象上,二者间距离为 0。
        参数:
        sourceRecordset - 指定的被计算记录集。只支持二维点记录集。
        referenceRecordset - 指定的参考记录集。只支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。 单位与被计算记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于或等于 0,且必须大于或等于最小距离。单位与被计算记录集所属数据集的单位相同。
        outputDatasource - 指定的用于存储结果属性表数据集的数据源。
        outputDatasetName - 指定的结果属性表数据集的名称。
        listeners - 用于接收进度条事件的监听器。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。
      • computeRangeDistance

        @Deprecated
        public static boolean computeRangeDistance(Geometry[] sourceGeometries,
                                                                Recordset referenceRecordset,
                                                                double minDistance,
                                                                double maxDistance,
                                                                Datasource outputDatasource,
                                                                String outputDatasetName)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.computeRangeDistance(Geometry[], Recordset, double, double, Datasource, String, SteppedListener...) 替换。
        范围距离计算。求算“被计算几何对象集合”中每一个对象到“参考记录集”中在查询范围内的每一个对象的距离,并将距离信息保存到一个新的属性表数据集中。

        有关范围距离计算,请参见另一重载方法 computeRangeDistance 的介绍。与该方法不同的是,此方法涉及的被计算对象要求以几何对象数组的形式给出。

        参数:
        sourceGeometries - 指定的被计算几何对象数组。只支持二维点对象。
        referenceRecordset - 指定的参考记录集。只支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。 单位与参考记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0,且必须大于或等于最小距离。单位与参考记录集所属数据集的单位相同。
        outputDatasource - 指定的用于存储结果属性表数据集的数据源。
        outputDatasetName - 指定的结果属性表数据集的名称。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。
      • computeRangeDistance

        public static boolean computeRangeDistance(Geometry[] sourceGeometries,
                                                   Recordset referenceRecordset,
                                                   double minDistance,
                                                   double maxDistance,
                                                   Datasource outputDatasource,
                                                   String outputDatasetName,
                                                   SteppedListener... listeners)
        范围距离计算。求算“被计算几何对象集合”中每一个对象到“参考记录集”中在查询范围内的每一个对象的距离,并将距离信息保存到一个新的属性表数据集中。

        有关范围距离计算,请参见另一重载方法 computeRangeDistance 的介绍。与该方法不同的是,此方法涉及的被计算对象要求以几何对象数组的形式给出。

        参数:
        sourceGeometries - 指定的被计算几何对象数组。只支持二维点对象。
        referenceRecordset - 指定的参考记录集。只支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。 单位与参考记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0,且必须大于或等于最小距离。单位与参考记录集所属数据集的单位相同。
        outputDatasource - 指定的用于存储结果属性表数据集的数据源。
        outputDatasetName - 指定的结果属性表数据集的名称。
        listeners - 用于接收进度条事件的监听器。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。
      • computeRangeDistance

        @Deprecated
        public static ComputeDistanceResult[] computeRangeDistance(Recordset sourceRecordset,
                                                                                Recordset referenceRecordset,
                                                                                double minDistance,
                                                                                double maxDistance)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.computeRangeDistance(Recordset, Recordset, double, double, SteppedListener...) 替换。
        范围距离计算。求算“被计算记录集”中每一个对象到“参考记录集”中在查询范围内的每一个对象的距离,并将距离信息返回到距离计算结果数组中。

        有关范围距离计算,请参见另一重载方法 computeRangeDistance 的介绍。

        此方法将计算的结果返回到一个距离计算结果(ComputeDistanceResult)对象数组中,从每一个 ComputeDistanceResult 对象可以获得一个“被计算对象”的距离结果,包括“被计算对象”的 SMID、“参考对象”的 SMID 数组和对应的距离值。

        参数:
        sourceRecordset - 指定的被计算记录集。只支持二维点记录集。
        referenceRecordset - 指定的参考记录集。只支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。 单位与被计算记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0,且必须大于或等于最小距离。单位与被计算记录集所属数据集的单位相同。
        返回:
        距离计算结果数组。
      • computeRangeDistance

        public static ComputeDistanceResult[] computeRangeDistance(Recordset sourceRecordset,
                                                                   Recordset referenceRecordset,
                                                                   double minDistance,
                                                                   double maxDistance,
                                                                   SteppedListener... listeners)
        范围距离计算。求算“被计算记录集”中每一个对象到“参考记录集”中在查询范围内的每一个对象的距离,并将距离信息返回到距离计算结果数组中。

        有关范围距离计算,请参见另一重载方法 computeRangeDistance 的介绍。

        此方法将计算的结果返回到一个距离计算结果(ComputeDistanceResult)对象数组中,从每一个 ComputeDistanceResult 对象可以获得一个“被计算对象”的距离结果,包括“被计算对象”的 SMID、“参考对象”的 SMID 数组和对应的距离值。

        参数:
        sourceRecordset - 指定的被计算记录集。只支持二维点记录集。
        referenceRecordset - 指定的参考记录集。只支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。 单位与被计算记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0,且必须大于或等于最小距离。单位与被计算记录集所属数据集的单位相同。
        listeners - 用于接收进度条事件的监听器。
        返回:
        距离计算结果数组。
      • computeRangeDistance

        @Deprecated
        public static ComputeDistanceResult[] computeRangeDistance(Geometry[] sourceGeometries,
                                                                                Recordset referenceRecordset,
                                                                                double minDistance,
                                                                                double maxDistance)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.computeRangeDistance(Geometry[], Recordset, double, double, SteppedListener...) 替换。
        范围距离计算。求算“被计算几何对象集合”中每一个对象到“参考记录集”中在查询范围内的每一个对象的距离,并将距离信息返回到距离计算结果数组中。

        有关范围距离计算,请参见另一重载方法 computeRangeDistance 的介绍。与该方法不同的是,此方法涉及的被计算对象要求以几何对象数组的形式给出。

        此方法将计算的结果返回到一个距离计算结果(ComputeDistanceResult)对象数组中,从每一个 ComputeDistanceResult 对象可以获得一个“被计算对象”的距离结果,包括“被计算对象”的 SMID、“参考对象”的 SMID 数组和对应的距离值。

        参数:
        sourceGeometries - 指定的被计算几何对象数组。只支持二维点对象。
        referenceRecordset - 指定的参考记录集。只支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。 单位与参考记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0,且必须大于或等于最小距离。单位与参考记录集所属数据集的单位相同。
        返回:
        距离计算结果数组。
      • computeRangeDistance

        public static ComputeDistanceResult[] computeRangeDistance(Geometry[] sourceGeometries,
                                                                   Recordset referenceRecordset,
                                                                   double minDistance,
                                                                   double maxDistance,
                                                                   SteppedListener... listeners)
        范围距离计算。求算“被计算几何对象集合”中每一个对象到“参考记录集”中在查询范围内的每一个对象的距离,并将距离信息返回到距离计算结果数组中。

        有关范围距离计算,请参见另一重载方法 computeRangeDistance 的介绍。与该方法不同的是,此方法涉及的被计算对象要求以几何对象数组的形式给出。

        此方法将计算的结果返回到一个距离计算结果(ComputeDistanceResult)对象数组中,从每一个 ComputeDistanceResult 对象可以获得一个“被计算对象”的距离结果,包括“被计算对象”的 SMID、“参考对象”的 SMID 数组和对应的距离值。

        参数:
        sourceGeometries - 指定的被计算几何对象数组。只支持二维点对象。
        referenceRecordset - 指定的参考记录集。只支持二维点、线、面记录集。
        minDistance - 指定的查询范围的最小距离。取值范围为大于或等于 0。 单位与参考记录集所属数据集的单位相同。
        maxDistance - 指定的查询范围的最大距离。取值范围为大于 0,且必须大于或等于最小距离。单位与参考记录集所属数据集的单位相同。
        listeners - 用于接收进度条事件的监听器。
        返回:
        距离计算结果数组。
      • rarefyPoints

        public static DatasetVector rarefyPoints(DatasetVector sourceDataset,
                                                 double radius,
                                                 String resultDatasetName,
                                                 Datasource outputDatasource,
                                                 boolean isSaveAttributes)
        根据指定的距离抽稀点数据集。

        在结果数据集 resultDatasetName 中,会新建SourceObjID 和 StatisticsObjNum 两个字段。SourceObjID 字段存储抽稀后得到的点对象在原始数据集中的 SmID, StatisticsObjNum 表示当前点所代表的所有点数目,包括被抽稀的点和其自身。

        此接口进行抽稀时使用距离抽稀,以一个点为中心的一个圆内所有的点都会被抽稀,然后使用一个点表示所有点,所以该接口抽稀后的点不一定是被抽稀点集的中心点,具有一定的随机性。

        参数:
        sourceDataset - 待抽稀的点数据集。
        radius - 抽稀点的半径,单位与数据集坐标系单位相同。任取一个坐标点,在此坐标点半径内的所有点坐标通过此点表示。
        resultDatasetName - 抽稀后的结果数据集的名称。
        outputDatasource - 结果数据集所在的数据源。
        isSaveAttributes - 是否保留属性字段。
        返回:
        抽稀后的结果数据集,失败为null。
        从以下版本开始:
        SuperMap iObject Java 7.2.0
      • rarefyPoints

        public static DatasetVector rarefyPoints(DatasetVector sourceDataset,
                                                 double radius,
                                                 String resultDatasetName,
                                                 Datasource outputDatasource,
                                                 boolean isSaveAttributes,
                                                 SteppedListener... listeners)
        根据指定的距离抽稀点数据集。

        在结果数据集 resultDatasetName 中,会新建SourceObjID 和 StatisticsObjNum 两个字段。SourceObjID 字段存储抽稀后得到的点对象在原始数据集中的 SmID, StatisticsObjNum 表示当前点所代表的所有点数目,包括被抽稀的点和其自身。

        此接口进行抽稀时使用距离抽稀,以一个点为中心的一个圆内所有的点都会被抽稀,然后使用一个点表示所有点,所以该接口抽稀后的点不一定是被抽稀点集的中心点,具有一定的随机性。

        参数:
        sourceDataset - 待抽稀的点数据集。
        radius - 抽稀点的半径,单位与数据集坐标系单位相同。任取一个坐标点,在此坐标点半径内的所有点坐标通过此点表示。
        resultDatasetName - 抽稀后的结果数据集的名称。
        outputDatasource - 结果数据集所在的数据源。
        isSaveAttributes - 是否保留属性字段。
        listeners - 用于接收进度条事件的监听器。
        返回:
        抽稀后的结果数据集,失败为null。
        从以下版本开始:
        SuperMap iObject Java 7.2.0
      • summaryPoints

        @Deprecated
        public static DatasetVector summaryPoints(DatasetVector sourceDataset,
                                                               double radius,
                                                               Unit unit,
                                                               StatisticsField[] statisticFields,
                                                               Datasource outputDatasource,
                                                               String resultDatasetName,
                                                               boolean isRandomSavePnt,
                                                               boolean isSaveAttributes)
        点抽稀

        根据指定的距离抽稀点数据集,即用一个点表示指定距离范围内的所有点。 该方法支持不同的单位,并且可以选择点抽稀的方式,还可以对抽稀点原始点集做统计

        参数:
        sourceDataset - 源数据集
        radius - 抽稀点的半径。任取一个坐标点,在此坐标点半径内的所有点坐标通过此点表示。需注意选择抽稀点的半径的单位
        unit - 单位
        statisticFields - 对抽稀点原始点集做统计。需要设置统计的字段名,统计结果的字段名和统计模式。当该数组为空表示不做统计
        outputDatasource - 指定的存储结果的数据集所在的数据源
        resultDatasetName - 指定的结果数据集名称
        isRandomSavePnt - 是否随机保存抽稀点
        isSaveAttributes - 是否保留属性字段
        返回:
        抽稀后的结果数据集,失败为null。
      • summaryPoints

        public static DatasetVector summaryPoints(DatasetVector sourceDataset,
                                                  double radius,
                                                  Unit unit,
                                                  StatisticsField[] statisticFields,
                                                  Datasource outputDatasource,
                                                  String resultDatasetName,
                                                  boolean isRandomSavePnt,
                                                  boolean isSaveAttributes,
                                                  SteppedListener... listeners)
        点抽稀

        根据指定的距离抽稀点数据集,即用一个点表示指定距离范围内的所有点。 该方法支持不同的单位,并且可以选择点抽稀的方式,还可以对抽稀点原始点集做统计

        参数:
        sourceDataset - 源数据集
        radius - 抽稀点的半径。任取一个坐标点,在此坐标点半径内的所有点坐标通过此点表示。需注意选择抽稀点的半径的单位
        unit - 单位
        statisticFields - 对抽稀点原始点集做统计。需要设置统计的字段名,统计结果的字段名和统计模式。当该数组为空表示不做统计
        outputDatasource - 指定的存储结果的数据集所在的数据源
        resultDatasetName - 指定的结果数据集名称
        isRandomSavePnt - 是否随机保存抽稀点
        isSaveAttributes - 是否保留属性字段
        listeners - 用于接收进度条事件的监听器。
        返回:
        抽稀后的结果数据集,失败为null。
      • summaryPoints

        @Deprecated
        public static DatasetVector summaryPoints(Recordset recordset,
                                                               double radius,
                                                               Unit unit,
                                                               StatisticsField[] statisticFields,
                                                               Datasource outputDatasource,
                                                               String resultDatasetName,
                                                               boolean isRandomSavePnt,
                                                               boolean isSaveAttributes)
        点抽稀
        参数:
        recordset - 源记录集
        radius - 抽稀点的半径。任取一个坐标点,在此坐标点半径内的所有点坐标通过此点表示。需注意选择抽稀点的半径的单位
        unit - 单位
        statisticFields - 对抽稀点原始点集做统计。需要设置统计的字段名,统计结果的字段名和统计模式。当该数组为空表示不做统计
        outputDatasource - 指定的存储结果的数据集所在的数据源
        resultDatasetName - 指定的结果数据集名称
        isRandomSavePnt - 是否随机保存抽稀点
        isSaveAttributes - 是否保留属性字段
        返回:
        抽稀后的结果数据集,失败为null。
      • summaryPoints

        public static DatasetVector summaryPoints(Recordset recordset,
                                                  double radius,
                                                  Unit unit,
                                                  StatisticsField[] statisticFields,
                                                  Datasource outputDatasource,
                                                  String resultDatasetName,
                                                  boolean isRandomSavePnt,
                                                  boolean isSaveAttributes,
                                                  SteppedListener... listeners)
        点抽稀
        参数:
        recordset - 源记录集
        radius - 抽稀点的半径。任取一个坐标点,在此坐标点半径内的所有点坐标通过此点表示。需注意选择抽稀点的半径的单位
        unit - 单位
        statisticFields - 对抽稀点原始点集做统计。需要设置统计的字段名,统计结果的字段名和统计模式。当该数组为空表示不做统计
        outputDatasource - 指定的存储结果的数据集所在的数据源
        resultDatasetName - 指定的结果数据集名称
        isRandomSavePnt - 是否随机保存抽稀点
        isSaveAttributes - 是否保留属性字段
        listeners - 用于接收进度条事件的监听器。
        返回:
        抽稀后的结果数据集,失败为null。
      • rarefyPoints

        @Deprecated
        public static StatisticsPoint[] rarefyPoints(StatisticsPoint[] sourcePoints,
                                                                  double radius)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.rarefyPoints(StatisticsPoint[], double, SteppedListener...) 替换。
        根据指定的距离抽稀点集合。

        此接口进行点抽稀时,结果点的统计属性值(getStatisticsCount)是所有被抽稀点统计属性的和值。

        参数:
        sourcePoints - 待抽稀的统计点集合,参考 StatisticsPoint
        radius - 抽稀点的半径,单位与数据集坐标系单位相同。任取一个坐标点,在此坐标点半径内的所有点坐标通过此点表示。
        返回:
        抽稀后的统计点的集合。
        从以下版本开始:
        SuperMap iObject Java 7.2.0
      • rarefyPoints

        public static StatisticsPoint[] rarefyPoints(StatisticsPoint[] sourcePoints,
                                                     double radius,
                                                     SteppedListener... listeners)
        根据指定的距离抽稀点集合。

        此接口进行点抽稀时,结果点的统计属性值(getStatisticsCount)是所有被抽稀点统计属性的和值。

        参数:
        sourcePoints - 待抽稀的统计点集合,参考 StatisticsPoint
        radius - 抽稀点的半径,单位与数据集坐标系单位相同。任取一个坐标点,在此坐标点半径内的所有点坐标通过此点表示。
        listeners - 用于接收进度条事件的监听器。
        返回:
        抽稀后的统计点的集合。
        从以下版本开始:
        SuperMap iObject Java 7.2.0
      • addSteppedListener

        public static void addSteppedListener(SteppedListener l)
        添加一个进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • removeSteppedListener

        public static void removeSteppedListener(SteppedListener l)
        移除一个进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • createThiessenPolygon

        @Deprecated
        public static DatasetVector createThiessenPolygon(DatasetVector sourcePoint,
                                                                       Datasource outputDatasource,
                                                                       String outputDatasetName,
                                                                       GeoRegion clipRegion,
                                                                       String[] statisticsFields,
                                                                       StatisticsType[] statisticsTypes)
        根据给定的点数据集生成泰森多边形,如果输入的点数据集中含有重复点对象,支持对点对象进行属性字段统计。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePoint - 用于生成泰森多边形的点数据集。
        outputDatasource - 用于保存结果的数据源。
        outputDatasetName - 指定的结果数据集的名称。
        clipRegion - 指定的结果数据集的裁剪区域。该参数可以为 null,标志对结果数据集不进行裁剪。
        statisticsFields - 需要进行统计的属性字段,不支持系统字段。
        statisticsTypes - 需要统计的属性字段对应的统计类型。数目必须与staticsFields的数目一致。
        返回:
        存放泰森多形的结果数据集。
        从以下版本开始:
        SuperMap iObject Java 8.0
      • createThiessenPolygon

        public static DatasetVector createThiessenPolygon(DatasetVector sourcePoint,
                                                          Datasource outputDatasource,
                                                          String outputDatasetName,
                                                          GeoRegion clipRegion,
                                                          String[] statisticsFields,
                                                          StatisticsType[] statisticsTypes,
                                                          SteppedListener... listeners)
        根据给定的点数据集生成泰森多边形,如果输入的点数据集中含有重复点对象,支持对点对象进行属性字段统计。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        sourcePoint - 用于生成泰森多边形的点数据集。
        outputDatasource - 用于保存结果的数据源。
        outputDatasetName - 指定的结果数据集的名称。
        clipRegion - 指定的结果数据集的裁剪区域。该参数可以为 null,标志对结果数据集不进行裁剪。
        statisticsFields - 需要进行统计的属性字段,不支持系统字段。
        statisticsTypes - 需要统计的属性字段对应的统计类型。数目必须与staticsFields的数目一致。
        listeners - 用于接收进度条事件的监听器。
        返回:
        存放泰森多形的结果数据集。
        从以下版本开始:
        SuperMap iObject Java 8.0
      • createThiessenPolygon

        @Deprecated
        public static DatasetVector createThiessenPolygon(Recordset sourcePointRecordset,
                                                                       Datasource outputDatasource,
                                                                       String outputDatasetName,
                                                                       GeoRegion clipRegion,
                                                                       String[] statisticsFields,
                                                                       StatisticsType[] statisticsTypes)
        根据给定的点记录集生成泰森多边形,如果输入的点数据集中含有重复点对象,支持对点对象进行属性字段统计。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        outputDatasource - 用于保存结果的数据源。
        outputDatasetName - 指定的结果数据集的名称。
        clipRegion - 指定的结果数据集的裁剪区域。该参数可以为 null,标志对结果数据集不进行裁剪。
        statisticsFields - 需要进行统计的属性字段,不支持系统字段。
        statisticsTypes - 需要统计的属性字段对应的统计类型。数目必须与staticsFields的数目一致。
        返回:
        存放泰森多形的结果数据集。
        从以下版本开始:
        SuperMap iObject Java 8.0
      • createThiessenPolygon

        public static DatasetVector createThiessenPolygon(Recordset sourcePointRecordset,
                                                          Datasource outputDatasource,
                                                          String outputDatasetName,
                                                          GeoRegion clipRegion,
                                                          String[] statisticsFields,
                                                          StatisticsType[] statisticsTypes,
                                                          SteppedListener... listeners)
        根据给定的点记录集生成泰森多边形,如果输入的点数据集中含有重复点对象,支持对点对象进行属性字段统计。

        有关泰森多边形的详细介绍,请参阅另一重载方法 createThiessenPolygon

        参数:
        outputDatasource - 用于保存结果的数据源。
        outputDatasetName - 指定的结果数据集的名称。
        clipRegion - 指定的结果数据集的裁剪区域。该参数可以为 null,标志对结果数据集不进行裁剪。
        statisticsFields - 需要进行统计的属性字段,不支持系统字段。
        statisticsTypes - 需要统计的属性字段对应的统计类型。数目必须与staticsFields的数目一致。
        listeners - 用于接收进度条事件的监听器。
        返回:
        存放泰森多形的结果数据集。
        从以下版本开始:
        SuperMap iObject Java 8.0
      • autoComputeProjectPoint

        @Deprecated
        public static boolean autoComputeProjectPoint(Recordset sourceRecordset,
                                                                   Recordset referenceRecordset,
                                                                   double maxDistance,
                                                                   Datasource outputDatasource,
                                                                   String outputDatasetName)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 ProximityAnalyst.autoComputeProjectPoint(Recordset, Recordset, double, Datasource, String, SteppedListener...) 替换。
        自动计算点到线的垂线。

        在结果属性表 outputDatasetName 中,会新建(sourceRecordset_Name)_ID 、(referenceRecordset_Name)_ID 、Distance 、SegmentIndex 、ProjectPoint_X 、ProjectPoint_Y 、Angle等字段。(sourceRecordset_Name)_ID 字段存储sourceRecordset记录集的 SmID, (referenceRecordset_Name)_ID 字段存储referenceRecordset记录集的 SmI, Distance 存储点到线的垂足的距离, SegmentIndex 存储点到线的垂足所在弧段ID(起始值为0),ProjectPoint_X 垂足点的X坐标,ProjectPoint_Y 垂足点的Y坐标,Angle 垂线的角度(与正北方向的夹角)。

        参数:
        sourceRecordset - 指定的点记录集。
        referenceRecordset - 指定的参考线记录集。
        maxDistance - 指定的最大查询距离。取值范围为: 大于0 和 -1 。设置为 -1 时,表示不限制最大距离。距离单位与指定的点记录集所属数据集单位相同。
        outputDatasource - 结果属性表所在的数据源。
        outputDatasetName - 结果属性表名称。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。
      • autoComputeProjectPoint

        public static boolean autoComputeProjectPoint(Recordset sourceRecordset,
                                                      Recordset referenceRecordset,
                                                      double maxDistance,
                                                      Datasource outputDatasource,
                                                      String outputDatasetName,
                                                      SteppedListener... listeners)
        自动计算点到线的垂线。

        在结果属性表 outputDatasetName 中,会新建(sourceRecordset_Name)_ID 、(referenceRecordset_Name)_ID 、Distance 、SegmentIndex 、ProjectPoint_X 、ProjectPoint_Y 、Angle等字段。(sourceRecordset_Name)_ID 字段存储sourceRecordset记录集的 SmID, (referenceRecordset_Name)_ID 字段存储referenceRecordset记录集的 SmI, Distance 存储点到线的垂足的距离, SegmentIndex 存储点到线的垂足所在弧段ID(起始值为0),ProjectPoint_X 垂足点的X坐标,ProjectPoint_Y 垂足点的Y坐标,Angle 垂线的角度(与正北方向的夹角)。

        参数:
        sourceRecordset - 指定的点记录集。
        referenceRecordset - 指定的参考线记录集。
        maxDistance - 指定的最大查询距离。取值范围为: 大于0 和 -1 。设置为 -1 时,表示不限制最大距离。距离单位与指定的点记录集所属数据集单位相同。
        outputDatasource - 结果属性表所在的数据源。
        outputDatasetName - 结果属性表名称。
        listeners - 用于接收进度条事件的监听器。
        返回:
        一个布尔值,表示是否计算成功。如果成功,返回 true,否则返回 false。

Copyright © 2021–2024 SuperMap. All rights reserved.