com.supermap.analyst.spatialanalyst

类 OverlayAnalyst



  • public class OverlayAnalyst
    extends Object
    叠加分析类。

    该类用于对输入的两个数据集或记录集之间进行各种叠加分析运算,如裁剪(clip)、擦除(erase)、合并(union)、相交(intersect)、同一(identity)、对称差(xOR)和更新(update)。

    叠加分析是 GIS 中的一项非常重要的空间分析功能。是指在统一空间参考系统下,通过对两个数据集进行的一系列集合运算,产生新数据集的过程。叠加分析广泛应用于资源管理、城市建设评估、国土管理、农林牧业、统计等领域。因此,通过此叠加分析类可实现对空间数据的加工和分析,提取用户需要的新的空间几何信息,并且对数据的属性信息进行处理。

    * 注意:

    1. 进行叠加分析的两个数据集中,被称作输入数据集(在 SuperMap GIS 中称作第一数据集)的那个数据集,其类型可以是点、线、面等;另一个被称作叠加数据集(在 SuperMap GIS 中称作第二数据集)的数据集,其类型一般是面类型。
    2. 应注意面数据集或记录集中本身应避免包含重叠区域,否则叠加分析结果可能出错。
    3. 叠加分析的数据必须为具有相同地理参考的数据,包括输入数据和结果数据。
    4. 在叠加分析的数据量较大的情况下,需对结果数据集创建空间索引,以提高数据的显示速度。

    有关叠加分析的详细介绍,还可参阅《叠加分析》技术文档。

    • 方法详细资料

      • clip

        @Deprecated
        public static boolean clip(DatasetVector dataset,
                                                DatasetVector clipDataset,
                                                DatasetVector resultDataset,
                                                OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.clip(DatasetVector, DatasetVector, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        对矢量数据集进行裁剪,将被裁剪数据集(第一个数据集)中不在裁剪数据集(第二个数据集)内的对象裁剪并删除。 注意:
        1. 裁剪数据集(第二数据集)的类型必须是面,被剪裁的数据集(第一数据集)可以是点、线、面。
        2. 在被裁剪数据集中,只有落在裁剪数据集多边形内的对象才会被输出到结果数据集中。
        3. 裁剪数据集、被裁剪数据集以及结果数据集的地理坐标系必须一致。
        4. 在叠加分析中,clip 和 intersect 的主要区别在于它们如何处理属性结构和结果对象。clip 只会保留源数据的原始属性结构,而 intersect 可以根据字段设置保留两个数据集的字段。此外,当源数据有一个几何对象与多个叠加数据面相交时,clip 会产生一个单一的几何对象,而 intersect 将为每个相交部分生成一个独立的结果。
        5. 所有叠加分析的结果都不考虑数据集的系统字段。

        参数:
        dataset - 被裁剪的数据集,也称第一数据集。该数据集类型可以是点、线和面。
        clipDataset - 用于裁剪的数据集,也称第二数据集。该数据集类型必须是面。
        resultDataset - 存放裁剪结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。此处该对象设置无效。
        返回:
        分析成功返回值为 true,失败返回值为 false。
      • clip

        public static boolean clip(DatasetVector dataset,
                                   DatasetVector clipDataset,
                                   DatasetVector resultDataset,
                                   OverlayAnalystParameter parameter,
                                   SteppedListener... listeners)
        对矢量数据集进行裁剪,将被裁剪数据集(第一个数据集)中不在裁剪数据集(第二个数据集)内的对象裁剪并删除。 注意:
        1. 裁剪数据集(第二数据集)的类型必须是面,被剪裁的数据集(第一数据集)可以是点、线、面。
        2. 在被裁剪数据集中,只有落在裁剪数据集多边形内的对象才会被输出到结果数据集中。
        3. 裁剪数据集、被裁剪数据集以及结果数据集的地理坐标系必须一致。
        4. 在叠加分析中,clip 和 intersect 的主要区别在于它们如何处理属性结构和结果对象。clip 只会保留源数据的原始属性结构,而 intersect 可以根据字段设置保留两个数据集的字段。此外,当源数据有一个几何对象与多个叠加数据面相交时,clip 会产生一个单一的几何对象,而 intersect 将为每个相交部分生成一个独立的结果。
        5. 所有叠加分析的结果都不考虑数据集的系统字段。

        参数:
        dataset - 被裁剪的数据集,也称第一数据集。该数据集类型可以是点、线和面。
        clipDataset - 用于裁剪的数据集,也称第二数据集。该数据集类型必须是面。
        resultDataset - 存放裁剪结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。此处该对象设置无效。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        以下代码示范了如何对线矢量数据集进行裁剪。
         public void overlayAnalystClip1() {
                // 返回被裁剪的矢量数据集和用于裁剪的矢量数据集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo("G:/SampleData/shanghai/shanghai.udb",
                                                 "shanghai", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
                DatasetVector datasetCliped = (DatasetVector) targetDatasource.
                                              getDatasets().get("Road_L");
                DatasetVector datasetClip = (DatasetVector) targetDatasource.
                                            getDatasets().get("Park_R");
        
                // 创建一个线矢量数据集,用于存储裁剪分析返回的结果
                String resultDatasetClipName = targetDatasource.getDatasets().
                                               getAvailableDatasetName(
                        "resultDatasetClip");
                DatasetVectorInfo datasetvectorInfoClip = new DatasetVectorInfo();
                datasetvectorInfoClip.setType(DatasetType.LINE);
                datasetvectorInfoClip.setName(resultDatasetClipName);
                datasetvectorInfoClip.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetClip = targetDatasource.getDatasets().create(
                        datasetvectorInfoClip);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamClip = new
                        OverlayAnalystParameter();
                overlayAnalystParamClip.setTolerance(0.0122055608);
        
                // 调用裁剪叠加分析方法实现裁剪分析
                OverlayAnalyst.clip(datasetCliped, datasetClip, resultDatasetClip,
                                    overlayAnalystParamClip);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • clip

        @Deprecated
        public static boolean clip(Recordset recordset,
                                                Recordset clipRecordset,
                                                DatasetVector resultDataset,
                                                OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.clip(Recordset, Recordset, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        对记录集进行裁剪,将第一个记录集中不在第二个记录集内的对象裁剪并删除。

        注意:

        1. 裁剪记录集(第二记录集)的类型必须是面,被剪裁的记录集(第一记录集)可以是点、线、面。
        2. 在被裁剪记录集中,只有落在裁剪记录集多边形内的对象才会被输出到结果数据集中。
        3. 裁剪记录集、被裁剪记录集以及结果数据集的地理坐标系必须一致。
        4. 在叠加分析中,clip 和 intersect 的主要区别在于它们如何处理属性结构和结果对象。clip 只会保留源记录集的原始属性结构,而 intersect 可以根据字段设置保留两个记录集的字段。此外,当源数据有一个几何对象与多个叠加数据面相交时,clip 会产生一个单一的几何对象,而 intersect 将为每个相交部分生成一个独立的结果。
        5. 所有叠加分析的结果都不考虑记录集的系统字段。

        对于裁剪的示意图,可参考另一重载方法 clip 的介绍。

        参数:
        recordset - 被裁剪的记录集,也称为第一记录集。该记录集类型可以是点、线和面类型。
        clipRecordset - 用于裁剪的记录集,也称为第二记录集。该记录集类型必须是面类型。
        resultDataset - 存放裁剪结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。此处该对象设置无效。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        以下代码示范了如何对线记录集进行裁剪。
      • clip

        public static boolean clip(Recordset recordset,
                                   Recordset clipRecordset,
                                   DatasetVector resultDataset,
                                   OverlayAnalystParameter parameter,
                                   SteppedListener... listeners)
        对记录集进行裁剪,将第一个记录集中不在第二个记录集内的对象裁剪并删除。

        注意:

        1. 裁剪记录集(第二记录集)的类型必须是面,被剪裁的记录集(第一记录集)可以是点、线、面。
        2. 在被裁剪记录集中,只有落在裁剪记录集多边形内的对象才会被输出到结果数据集中。
        3. 裁剪记录集、被裁剪记录集以及结果数据集的地理坐标系必须一致。
        4. 在叠加分析中,clip 和 intersect 的主要区别在于它们如何处理属性结构和结果对象。clip 只会保留源记录集的原始属性结构,而 intersect 可以根据字段设置保留两个记录集的字段。此外,当源数据有一个几何对象与多个叠加数据面相交时,clip 会产生一个单一的几何对象,而 intersect 将为每个相交部分生成一个独立的结果。
        5. 所有叠加分析的结果都不考虑记录集的系统字段。

        对于裁剪的示意图,可参考另一重载方法 clip 的介绍。

        参数:
        recordset - 被裁剪的记录集,也称为第一记录集。该记录集类型可以是点、线和面类型。
        clipRecordset - 用于裁剪的记录集,也称为第二记录集。该记录集类型必须是面类型。
        resultDataset - 存放裁剪结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。此处该对象设置无效。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        以下代码示范了如何对线记录集进行裁剪。
          public void overlayAnalystClip2() {
                // 返回被裁剪的记录集和用于裁剪的记录集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo("G:/SampleData/shanghai/shanghai.udb",
                                                 "shanghai", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
        
                DatasetVector datasetRoad = (DatasetVector) targetDatasource.
                                            getDatasets().get("Road_L");
                QueryParameter queryParamCliped = new QueryParameter();
                queryParamCliped.setAttributeFilter("ClassID=430110");
                queryParamCliped.setHasGeometry(true);
                Recordset queryResultCliped = datasetRoad.query(queryParamCliped);
        
                DatasetVector datasetPark = (DatasetVector) targetDatasource.
                                            getDatasets().get("Park_R");
                QueryParameter queryParamClip = new QueryParameter();
                queryParamClip.setAttributeFilter("ClassID=370100");
                queryParamClip.setHasGeometry(true);
                Recordset queryResultClip = datasetPark.query(queryParamClip);
        
                // 创建一个线矢量数据集,用于存储裁剪分析返回的结果
                String resultDatasetClipName = targetDatasource.getDatasets().
                                               getAvailableDatasetName(
                        "resultDatasetClip");
                DatasetVectorInfo datasetvectorInfoClip = new DatasetVectorInfo();
                datasetvectorInfoClip.setType(DatasetType.LINE);
                datasetvectorInfoClip.setName(resultDatasetClipName);
                datasetvectorInfoClip.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetClip = targetDatasource.getDatasets().create(
                        datasetvectorInfoClip);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamClip = new
                        OverlayAnalystParameter();
                overlayAnalystParamClip.setTolerance(0.0000015);
        
                // 调用裁剪叠加分析方法实现裁剪分析
                OverlayAnalyst.clip(queryResultCliped, queryResultClip,
                                    resultDatasetClip, overlayAnalystParamClip);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • clip

        @Deprecated
        public static boolean clip(DatasetVector dataset,
                                                Geometry[] clipGeometries,
                                                DatasetVector resultDataset,
                                                OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.clip(DatasetVector, Geometry[], DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        对矢量数据集进行裁剪,将被裁剪数据集中不在几何对象数组范围内的对象裁剪并删除。
        1. 裁剪几何对象的类型必须是面,被剪裁的数据集可以是点、线、面。
        2. 在被裁剪数据集中,只有落在裁剪几何对象内的对象才会被输出到结果数据集中。
        3. 用于裁剪的几何对象数组、被裁剪的数据集以及结果数据集的地理坐标系必须一致。
        4. 所有叠加分析的结果都不考虑数据集的系统字段。

        对于裁剪的示意图,可参考另一重载方法 clip 的介绍。

        参数:
        dataset - 被裁剪的数据集。该数据集类型可以是点、线和面。
        clipGeometries - 用于裁剪的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        resultDataset - 存放裁剪结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。此处该对象设置无效。
        返回:
        分析成功返回 true,失败返回 false。
      • clip

        public static boolean clip(DatasetVector dataset,
                                   Geometry[] clipGeometries,
                                   DatasetVector resultDataset,
                                   OverlayAnalystParameter parameter,
                                   SteppedListener... listeners)
        对矢量数据集进行裁剪,将被裁剪数据集中不在几何对象数组范围内的对象裁剪并删除。
        1. 裁剪几何对象的类型必须是面,被剪裁的数据集可以是点、线、面。
        2. 在被裁剪数据集中,只有落在裁剪几何对象内的对象才会被输出到结果数据集中。
        3. 用于裁剪的几何对象数组、被裁剪的数据集以及结果数据集的地理坐标系必须一致。
        4. 所有叠加分析的结果都不考虑数据集的系统字段。

        对于裁剪的示意图,可参考另一重载方法 clip 的介绍。

        参数:
        dataset - 被裁剪的数据集。该数据集类型可以是点、线和面。
        clipGeometries - 用于裁剪的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        resultDataset - 存放裁剪结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。此处该对象设置无效。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回 true,失败返回 false。
      • clip

        public static OverlayResult[] clip(Geometry[] clipSourceGeometries,
                                           Geometry[] clipTargetGeometries,
                                           double tolerance)
        对源几何对象数组进行裁剪,将被裁剪的几何对象数组中不在目标几何对象数组范围内的对象裁剪并删除。
        1. 裁剪几何对象的类型和被剪裁的几何对象的类型都必须是面。
        2. 在被裁剪的几何对象中,只有落在裁剪几何对象内的对象才会被输出到结果数组中。

        对于裁剪的示意图,可参考另一重载方法 clip 的介绍。

        参数:
        clipSourceGeometries - 被裁剪的几何对象数组。该数组中的几何对象类型必须是面几何对象。
        clipTargetGeometries - 用于裁剪的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        返回:
        叠加分析结果数组,如果成功返回 数组,否则返回 null。
      • clip

        public static OverlayResult[] clip(Geometry[] clipSourceGeometries,
                                           Geometry[] clipTargetGeometries,
                                           double tolerance,
                                           boolean isSupportOverlapInLayer)
        对源几何对象数组进行裁剪,将被裁剪的几何对象数组中不在目标几何对象数组范围内的对象裁剪并删除。可以支持面数据集内出现重叠面的情形。
        1. 裁剪几何对象的类型和被剪裁的几何对象的类型都必须是面。
        2. 在被裁剪的几何对象中,只有落在裁剪几何对象内的对象才会被输出到结果数组中。

        对于裁剪的示意图,可参考另一重载方法 clip 的介绍。

        参数:
        clipSourceGeometries - 被裁剪的几何对象数组。该数组中的几何对象类型必须是面几何对象。
        clipTargetGeometries - 用于裁剪的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        isSupportOverlapInLayer - 是否支持面数据集内含有重叠面的情形。
        返回:
        叠加分析结果数组,如果成功返回 数组,否则返回 null。
      • erase

        @Deprecated
        public static boolean erase(DatasetVector dataset,
                                                 DatasetVector eraseDataset,
                                                 DatasetVector resultDataset,
                                                 OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.erase(DatasetVector, DatasetVector, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        用于对数据集进行擦除方式的叠加分析,将第一个数据集中包含在第二个数据集内的对象裁剪并删除。

        注意:

        1. 擦除数据集(第二数据集)的类型必须是面,被擦除的数据集(第一数据集)可以是点、线、面数据集。
        2. 擦除数据集中的多边形集合定义了擦除区域,被擦除数据集中凡是落在这些多边形区域内的特征都将被去除,而落在多边形区域外的特征要素都将被输出到结果数据集中,与 clip 运算相反。
        3. 擦除数据集、被擦除数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被擦除的数据集,也称第一数据集。该数据集类型为点、线和面类型。
        eraseDataset - 存放分析结果的数据集。
        resultDataset - 用于擦除的数据集,也称第二数据集。该数据集类型必须是面数据集类型。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        返回:
        分析成功返回值为 true,失败返回值为 false。
      • erase

        public static boolean erase(DatasetVector dataset,
                                    DatasetVector eraseDataset,
                                    DatasetVector resultDataset,
                                    OverlayAnalystParameter parameter,
                                    SteppedListener... listeners)
        用于对数据集进行擦除方式的叠加分析,将第一个数据集中包含在第二个数据集内的对象裁剪并删除。

        注意:

        1. 擦除数据集(第二数据集)的类型必须是面,被擦除的数据集(第一数据集)可以是点、线、面数据集。
        2. 擦除数据集中的多边形集合定义了擦除区域,被擦除数据集中凡是落在这些多边形区域内的特征都将被去除,而落在多边形区域外的特征要素都将被输出到结果数据集中,与 clip 运算相反。
        3. 擦除数据集、被擦除数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被擦除的数据集,也称第一数据集。该数据集类型为点、线和面类型。
        eraseDataset - 存放分析结果的数据集。
        resultDataset - 用于擦除的数据集,也称第二数据集。该数据集类型必须是面数据集类型。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回值为 true,失败返回值为 false。
      • erase

        @Deprecated
        public static boolean erase(Recordset recordset,
                                                 Recordset eraseRecordset,
                                                 DatasetVector resultDataset,
                                                 OverlayAnalystParameter parameter)
        用于对记录集进行擦除方式的叠加分析,将第一个记录集中包含在第二个记录集内的对象裁剪并删除。

        有关擦除的详细说明,请参见另一重载方法 erase 的介绍。

        注意,用于擦除的记录集、被擦除的记录集以及结果数据集的地理坐标系必须一致。

        参数:
        recordset - 被擦除的记录集,也称第一记录集。该记录集类型为点、线和面类型。
        eraseRecordset - 用于擦除的记录集,也称第二记录集。该记录集类型必须是面类型。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        返回:
        分析成功返回值为 true,失败返回值为 false。
      • erase

        public static boolean erase(Recordset recordset,
                                    Recordset eraseRecordset,
                                    DatasetVector resultDataset,
                                    OverlayAnalystParameter parameter,
                                    SteppedListener... listeners)
        用于对记录集进行擦除方式的叠加分析,将第一个记录集中包含在第二个记录集内的对象裁剪并删除。

        有关擦除的详细说明,请参见另一重载方法 erase 的介绍。

        注意,用于擦除的记录集、被擦除的记录集以及结果数据集的地理坐标系必须一致。

        参数:
        recordset - 被擦除的记录集,也称第一记录集。该记录集类型为点、线和面类型。
        eraseRecordset - 用于擦除的记录集,也称第二记录集。该记录集类型必须是面类型。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回值为 true,失败返回值为 false。
      • erase

        @Deprecated
        public static boolean erase(DatasetVector dataset,
                                                 Geometry[] eraseGeometries,
                                                 DatasetVector resultDataset,
                                                 OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.erase(DatasetVector, Geometry[], DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        用于对数据集进行擦除方式的叠加分析,将被擦除的数据集中包含在几何对象数组内的对象裁剪并删除。

        有关擦除的详细说明,请参见另一重载方法 erase 的介绍。

        注意,用于擦除的几何对象数组、被擦除的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被擦除的数据集,该数据集类型为点、线和面类型。
        eraseGeometries - 用于擦除的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        resultDataset - 存放分析结果的数据集.
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        返回:
        分析成功返回 true,失败返回 false。
      • erase

        public static boolean erase(DatasetVector dataset,
                                    Geometry[] eraseGeometries,
                                    DatasetVector resultDataset,
                                    OverlayAnalystParameter parameter,
                                    SteppedListener... listeners)
        用于对数据集进行擦除方式的叠加分析,将被擦除的数据集中包含在几何对象数组内的对象裁剪并删除。

        有关擦除的详细说明,请参见另一重载方法 erase 的介绍。

        注意,用于擦除的几何对象数组、被擦除的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被擦除的数据集,该数据集类型为点、线和面类型。
        eraseGeometries - 用于擦除的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        resultDataset - 存放分析结果的数据集.
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回 true,失败返回 false。
      • erase

        public static OverlayResult[] erase(Geometry[] eraseSourceGeometries,
                                            Geometry[] eraseTargetGeometries,
                                            double tolerance)
        用于对源几何对象数组进行擦除方式的叠加分析,将被擦除的几何对象数组中包含在目标几何对象数组内的对象裁剪并删除。

        有关擦除的详细说明,请参见另一重载方法 erase 的介绍。

        参数:
        eraseSourceGeometries - 被擦除的几何对象数组,该数组中的几何对象类型必须是面几何对象。
        eraseTargetGeometries - 用于擦除的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        返回:
        叠加分析结果数组,如果成功返回 数组,否则返回 null。
      • erase

        public static OverlayResult[] erase(Geometry[] eraseSourceGeometries,
                                            Geometry[] eraseTargetGeometries,
                                            double tolerance,
                                            boolean isSupportOverlapInLayer)
        用于对源几何对象数组进行擦除方式的叠加分析,将被擦除的几何对象数组中包含在目标几何对象数组内的对象裁剪并删除。可以支持面数据集内出现重叠面的情形。

        有关擦除的详细说明,请参见另一重载方法 erase 的介绍。

        参数:
        eraseSourceGeometries - 被擦除的几何对象数组,该数组中的几何对象类型必须是面几何对象。
        eraseTargetGeometries - 用于擦除的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        isSupportOverlapInLayer - 是否支持面数据集内含有重叠面的情形。
        返回:
        叠加分析结果数组,如果成功返回 数组,否则返回 null。
      • identity

        @Deprecated
        public static boolean identity(DatasetVector dataset,
                                                    DatasetVector identityDataset,
                                                    DatasetVector resultDataset,
                                                    OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.identity(DatasetVector, DatasetVector, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        用于对数据集进行同一方式的叠加分析,结果数据集中保留被同一运算的数据集的全部对象和被同一运算的数据集与用来进行同一运算的数据集相交的对象。

        注意:

        1. 同一运算就是第一数据集与第二数据集先求交,然后求交结果再与第一数据集求并的一个运算。其中,第二数据集的类型必须是面,第一数据集的类型可以是点、线、面数据集。如果第一个数据集为点数集,则新生成的数据集中保留第一个数据集的所有对象;如果第一个数据集为线数据集,则新生成的数据集中保留第一个数据集的所有对象,但是把与第二个数据集相交的对象在相交的地方打断;如果第一个数据集为面数据集,则结果数据集保留以第一数据集为控制边界之内的所有多边形,并且把与第二个数据集相交的对象在相交的地方分割成多个对象。
        2. 用于进行同一运算的数据集、被同一运算的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被同一运算的数据集,可以是点、线、面类型。
        identityDataset - 用来进行同一运算的数据集,必须为面类型。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        对两个面数据集进行同一方式的叠加分析。
           public void overlayAnalystIdentity1() {
                // 返回被同一运算的矢量数据集与用于同一运算的矢量数据集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
                DatasetVector datasetIdentitied = (DatasetVector) targetDatasource.
                                                  getDatasets().get("Frame_R");
                DatasetVector datasetIdentity = (DatasetVector) targetDatasource.
                                                getDatasets().get("ResidentialArea");
        
                // 创建一个面矢量数据集,用于存储同一运算返回的结果
                String resultDatasetIdentityName = targetDatasource.getDatasets().
                                                   getAvailableDatasetName(
                        "resultDatasetIdentity");
                DatasetVectorInfo datasetvectorInfoIdentity = new DatasetVectorInfo();
                datasetvectorInfoIdentity.setType(DatasetType.REGION);
                datasetvectorInfoIdentity.setName(resultDatasetIdentityName);
                datasetvectorInfoIdentity.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetIdentity = targetDatasource.getDatasets().
                                                      create(datasetvectorInfoIdentity);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamIdentity = new
                        OverlayAnalystParameter();
                overlayAnalystParamIdentity.setOperationRetainedFields(new String[] {
                        "ClassID"});
                overlayAnalystParamIdentity.setSourceRetainedFields(new String[] {
                        "Name"});
                overlayAnalystParamIdentity.setTolerance(0.0089078724);
        
                // 调用同一运算方法实同一运算
                OverlayAnalyst.identity(datasetIdentitied, datasetIdentity,
                                     resultDatasetIdentity, overlayAnalystParamIdentity);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • identity

        public static boolean identity(DatasetVector dataset,
                                       DatasetVector identityDataset,
                                       DatasetVector resultDataset,
                                       OverlayAnalystParameter parameter,
                                       SteppedListener... listeners)
        用于对数据集进行同一方式的叠加分析,结果数据集中保留被同一运算的数据集的全部对象和被同一运算的数据集与用来进行同一运算的数据集相交的对象。

        注意:

        1. 同一运算就是第一数据集与第二数据集先求交,然后求交结果再与第一数据集求并的一个运算。其中,第二数据集的类型必须是面,第一数据集的类型可以是点、线、面数据集。如果第一个数据集为点数集,则新生成的数据集中保留第一个数据集的所有对象;如果第一个数据集为线数据集,则新生成的数据集中保留第一个数据集的所有对象,但是把与第二个数据集相交的对象在相交的地方打断;如果第一个数据集为面数据集,则结果数据集保留以第一数据集为控制边界之内的所有多边形,并且把与第二个数据集相交的对象在相交的地方分割成多个对象。
        2. identiy 运算与 union 运算有相似之处,所不同之处在于 union 运算保留了两个数据集的所有部分,而 identity 运算是把第一个数据集中与第二个数据集不相交的部分进行保留。identity 运算的结果属性表来自于两个数据集的属性表。
        3. 用于进行同一运算的数据集、被同一运算的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被同一运算的数据集,可以是点、线、面类型。
        identityDataset - 用来进行同一运算的数据集,必须为面类型。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        对两个面数据集进行同一方式的叠加分析。
           public void overlayAnalystIdentity1() {
                // 返回被同一运算的矢量数据集与用于同一运算的矢量数据集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
                DatasetVector datasetIdentitied = (DatasetVector) targetDatasource.
                                                  getDatasets().get("Frame_R");
                DatasetVector datasetIdentity = (DatasetVector) targetDatasource.
                                                getDatasets().get("ResidentialArea");
        
                // 创建一个面矢量数据集,用于存储同一运算返回的结果
                String resultDatasetIdentityName = targetDatasource.getDatasets().
                                                   getAvailableDatasetName(
                        "resultDatasetIdentity");
                DatasetVectorInfo datasetvectorInfoIdentity = new DatasetVectorInfo();
                datasetvectorInfoIdentity.setType(DatasetType.REGION);
                datasetvectorInfoIdentity.setName(resultDatasetIdentityName);
                datasetvectorInfoIdentity.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetIdentity = targetDatasource.getDatasets().
                                                      create(datasetvectorInfoIdentity);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamIdentity = new
                        OverlayAnalystParameter();
                overlayAnalystParamIdentity.setOperationRetainedFields(new String[] {
                        "ClassID"});
                overlayAnalystParamIdentity.setSourceRetainedFields(new String[] {
                        "Name"});
                overlayAnalystParamIdentity.setTolerance(0.0089078724);
        
                // 调用同一运算方法实同一运算
                OverlayAnalyst.identity(datasetIdentitied, datasetIdentity,
                                     resultDatasetIdentity, overlayAnalystParamIdentity);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • identity

        @Deprecated
        public static boolean identity(Recordset recordset,
                                                    Recordset identityRecordset,
                                                    DatasetVector resultDataset,
                                                    OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.identity(Recordset, Recordset, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        用于对记录集进行同一方式的叠加分析,结果数据集中保留被同一运算的记录集的全部对象和 被同一运算的记录集与用来进行同一运算的记录集相交的对象。

        有关同一运算的详细介绍,请参见另一重载方法 identity 的介绍。

        注意,用于进行同一运算的记录集、被同一运算的记录集以及结果数据集的地理坐标系必须一致。

        参数:
        recordset - 被同一运算的记录集,也称为第一记录集,可以是点、线、面类型。
        identityRecordset - 用来进行同一运算的记录集,也称为第二记录集,必须为面类型。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        以下代码示范了对两个面记录集进行同一方式的叠加分析。
           public void overlayAnalystIdentity2() {
                // 返回被同一运算的记录集与用于同一运算的记录集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
        
                DatasetVector datasetIdentitied = (DatasetVector) targetDatasource.
                                                  getDatasets().get("Frame_R");
                Recordset queryResultIdentitied = datasetIdentitied.getRecordset(false,
                        CursorType.DYNAMIC);
        
                DatasetVector datasetIdentity = (DatasetVector) targetDatasource.
                                                getDatasets().get("ResidentialArea");
                QueryParameter queryParamIdentity = new QueryParameter();
                queryParamIdentity.setAttributeFilter("ClassID = 32023");
                queryParamIdentity.setHasGeometry(true);
                Recordset queryResultIdentity = datasetIdentity.query(
                        queryParamIdentity);
        
                // 创建一个面矢量数据集,用于存储同一运算返回的结果
                String resultDatasetIdentityName = targetDatasource.getDatasets().
                                                   getAvailableDatasetName(
                        "resultDatasetIdentity");
                DatasetVectorInfo datasetvectorInfoIdentity = new DatasetVectorInfo();
                datasetvectorInfoIdentity.setType(DatasetType.REGION);
                datasetvectorInfoIdentity.setName(resultDatasetIdentityName);
                datasetvectorInfoIdentity.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetIdentity = targetDatasource.getDatasets().
                                                      create(datasetvectorInfoIdentity);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamIdentity = new
                        OverlayAnalystParameter();
                overlayAnalystParamIdentity.setOperationRetainedFields(new String[] {
                        "ClassID"});
                overlayAnalystParamIdentity.setSourceRetainedFields(new String[] {
                        "Name"});
                overlayAnalystParamIdentity.setTolerance(0.0089078724);
        
                // 调用同一运算方法实同一运算
                OverlayAnalyst.identity(queryResultIdentitied, queryResultIdentity,
                                     resultDatasetIdentity, overlayAnalystParamIdentity);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • identity

        public static boolean identity(Recordset recordset,
                                       Recordset identityRecordset,
                                       DatasetVector resultDataset,
                                       OverlayAnalystParameter parameter,
                                       SteppedListener... listeners)
        用于对记录集进行同一方式的叠加分析,结果数据集中保留被同一运算的记录集的全部对象和 被同一运算的记录集与用来进行同一运算的记录集相交的对象。

        有关同一运算的详细介绍,请参见另一重载方法 identity 的介绍。

        注意,用于进行同一运算的记录集、被同一运算的记录集以及结果数据集的地理坐标系必须一致。

        参数:
        recordset - 被同一运算的记录集,也称为第一记录集,可以是点、线、面类型。
        identityRecordset - 用来进行同一运算的记录集,也称为第二记录集,必须为面类型。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        以下代码示范了对两个面记录集进行同一方式的叠加分析。
           public void overlayAnalystIdentity2() {
                // 返回被同一运算的记录集与用于同一运算的记录集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
        
                DatasetVector datasetIdentitied = (DatasetVector) targetDatasource.
                                                  getDatasets().get("Frame_R");
                Recordset queryResultIdentitied = datasetIdentitied.getRecordset(false,
                        CursorType.DYNAMIC);
        
                DatasetVector datasetIdentity = (DatasetVector) targetDatasource.
                                                getDatasets().get("ResidentialArea");
                QueryParameter queryParamIdentity = new QueryParameter();
                queryParamIdentity.setAttributeFilter("ClassID = 32023");
                queryParamIdentity.setHasGeometry(true);
                Recordset queryResultIdentity = datasetIdentity.query(
                        queryParamIdentity);
        
                // 创建一个面矢量数据集,用于存储同一运算返回的结果
                String resultDatasetIdentityName = targetDatasource.getDatasets().
                                                   getAvailableDatasetName(
                        "resultDatasetIdentity");
                DatasetVectorInfo datasetvectorInfoIdentity = new DatasetVectorInfo();
                datasetvectorInfoIdentity.setType(DatasetType.REGION);
                datasetvectorInfoIdentity.setName(resultDatasetIdentityName);
                datasetvectorInfoIdentity.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetIdentity = targetDatasource.getDatasets().
                                                      create(datasetvectorInfoIdentity);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamIdentity = new
                        OverlayAnalystParameter();
                overlayAnalystParamIdentity.setOperationRetainedFields(new String[] {
                        "ClassID"});
                overlayAnalystParamIdentity.setSourceRetainedFields(new String[] {
                        "Name"});
                overlayAnalystParamIdentity.setTolerance(0.0089078724);
        
                // 调用同一运算方法实同一运算
                OverlayAnalyst.identity(queryResultIdentitied, queryResultIdentity,
                                     resultDatasetIdentity, overlayAnalystParamIdentity);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • identity

        @Deprecated
        public static boolean identity(DatasetVector dataset,
                                                    Geometry[] identityGeometries,
                                                    DatasetVector resultDataset,
                                                    OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.identity(DatasetVector, Geometry[], DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        用于对数据集进行同一方式的叠加分析,结果数据集中保留被同一运算的数据集的全部对象和被同一运算的数据集与用来进行同一运算的几何对象数组相交的对象。

        有关同一运算的详细介绍,请参见另一重载方法 identity 的介绍。

        注意,用于进行同一运算的几何对象数组、被同一运算的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被同一运算的数据集,可以是点、线、面类型。
        identityGeometries - 用来进行同一运算的几何对象数组,该数组中的几何对象必须是面几何对象。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        返回:
        分析成功返回 true,失败返回 false。
      • identity

        public static boolean identity(DatasetVector dataset,
                                       Geometry[] identityGeometries,
                                       DatasetVector resultDataset,
                                       OverlayAnalystParameter parameter,
                                       SteppedListener... listeners)
        用于对数据集进行同一方式的叠加分析,结果数据集中保留被同一运算的数据集的全部对象和被同一运算的数据集与用来进行同一运算的几何对象数组相交的对象。

        有关同一运算的详细介绍,请参见另一重载方法 identity 的介绍。

        注意,用于进行同一运算的几何对象数组、被同一运算的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被同一运算的数据集,可以是点、线、面类型。
        identityGeometries - 用来进行同一运算的几何对象数组,该数组中的几何对象必须是面几何对象。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回 true,失败返回 false。
      • identity

        public static OverlayResult[] identity(Geometry[] identitySourceGeometries,
                                               Geometry[] identityTargetGeometries,
                                               double tolerance)
        用于对源几何对象数组进行同一方式的叠加分析,叠加分析结果数组中保留被同一运算的几何对象数组的全部对象和被同一运算的几何对象数组与用来进行同一运算的目标几何对象数组相交的对象。

        有关同一运算的详细介绍,请参见另一重载方法 identity 的介绍。

        参数:
        identitySourceGeometries - 被同一运算的几何对象数组,该数组中的几何对象类型必须是面几何对象。
        identityTargetGeometries - 用来进行同一运算的几何对象数组,该数组中的几何对象必须是面几何对象。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        返回:
        叠加分析结果数组,如果成功返回 数组,否则返回 null。
      • identity

        public static OverlayResult[] identity(Geometry[] identitySourceGeometries,
                                               Geometry[] identityTargetGeometries,
                                               double tolerance,
                                               boolean isSupportOverlapInLayer)
        用于对源几何对象数组进行同一方式的叠加分析,叠加分析结果数组中保留被同一运算的几何对象数组的全部对象和被同一运算的几何对象数组与用来进行同一运算的目标几何对象数组相交的对象。可以支持面数据集内出现重叠面的情形。

        有关同一运算的详细介绍,请参见另一重载方法 identity 的介绍。

        参数:
        identitySourceGeometries - 被同一运算的几何对象数组,该数组中的几何对象类型必须是面几何对象。
        identityTargetGeometries - 用来进行同一运算的几何对象数组,该数组中的几何对象必须是面几何对象。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        isSupportOverlapInLayer - 是否支持面数据集内含有重叠面的情形。
        返回:
        叠加分析结果数组,如果成功返回 数组,否则返回 null。
      • intersect

        @Deprecated
        public static boolean intersect(DatasetVector dataset,
                                                     DatasetVector intersectDataset,
                                                     DatasetVector resultDataset,
                                                     OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.intersect(DatasetVector, DatasetVector, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        进行相交方式的叠加分析,将被相交叠加分析的数据集中不包含在用来相交叠加分析的数据集中的对象切割并删除。即两个数据集中重叠的部分将被输出到结果数据集中,其余部分将被排除。 注意:
        1. 被相交叠加分析的数据集可以是点类型、线类型和面类型,用来相交叠加分析的数据集可以是线数据集、面数据集,且仅当源数据集为线时,叠加数据集才支持线类型(此时输出结果类型 OverlayAnalystOutputType只能为POINT)。第一数据集的特征对象(点、线和面)在与第二数据集中的多边形相交处被分裂(点对象除外),分裂结果被输出到结果数据集中。
        2. 求交运算与裁剪运算得到的结果数据集的空间几何信息相同的,但是裁剪运算不对属性表做任何处理,而求交运算可以让用户选择需要保留的属性字段。
        3. 用于相交叠加分析的数据集、被相交叠加分析的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被相交叠加分析的数据集,该数据集的类型可以是点、线、面数据集。
        intersectDataset - 用来相交叠加分析的数据集,该数据集必须是面数据集。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        以下代码示范了对两个面数据集进行相交方式的叠加分析。
         public void overlayAnalystIntersect1() {
                // 返回被相交的矢量数据集与用于相交的矢量数据集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
                DatasetVector datasetIntersected = (DatasetVector) targetDatasource.
                                                   getDatasets().get("Frame_R");
                DatasetVector datasetIntersect = (DatasetVector) targetDatasource.
                                                 getDatasets().get("ResidentialArea");
        
                // 创建一个面矢量数据集,用于存储相交分析返回的结果
                String resultDatasetIntersectName = targetDatasource.getDatasets().
                                                    getAvailableDatasetName(
                        "resultDatasetIntersect");
                DatasetVectorInfo datasetvectorInfoIntersect = new DatasetVectorInfo();
                datasetvectorInfoIntersect.setType(DatasetType.REGION);
                datasetvectorInfoIntersect.setName(resultDatasetIntersectName);
                datasetvectorInfoIntersect.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetIntersect = targetDatasource.getDatasets().
                                                       create(
                        datasetvectorInfoIntersect);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamIntersect = new
                        OverlayAnalystParameter();
                overlayAnalystParamIntersect.setOperationRetainedFields(new String[] {
                        "ClassID"});
                overlayAnalystParamIntersect.setSourceRetainedFields(new String[] {
                        "Name"});
                overlayAnalystParamIntersect.setTolerance(0.0000011074);
        
                // 调用相交叠加分析方法实相交分析
                OverlayAnalyst.intersect(datasetIntersected, datasetIntersect,
                                         resultDatasetIntersect,
                                         overlayAnalystParamIntersect);
        
                // 释放工作空间占有的资源
                workspace.dispose();
        
            }
      • intersect

        public static boolean intersect(DatasetVector dataset,
                                        DatasetVector intersectDataset,
                                        DatasetVector resultDataset,
                                        OverlayAnalystParameter parameter,
                                        SteppedListener... listeners)
        进行相交方式的叠加分析,将被相交叠加分析的数据集中不包含在用来相交叠加分析的数据集中的对象切割并删除。即两个数据集中重叠的部分将被输出到结果数据集中,其余部分将被排除。 注意:
        1. 被相交叠加分析的数据集可以是点类型、线类型和面类型,用来相交叠加分析的数据集可以是线数据集、面数据集,且仅当源数据集为线时,叠加数据集才支持线类型(此时输出结果类型 OverlayAnalystOutputType只能为POINT)。第一数据集的特征对象(点、线和面)在与第二数据集中的多边形相交处被分裂(点对象除外),分裂结果被输出到结果数据集中。
        2. 求交运算与裁剪运算得到的结果数据集的空间几何信息相同的,但是裁剪运算不对属性表做任何处理,而求交运算可以让用户选择需要保留的属性字段。
        3. 用于相交叠加分析的数据集、被相交叠加分析的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被相交叠加分析的数据集,该数据集的类型可以是点、线、面数据集。
        intersectDataset - 用来相交叠加分析的数据集,该数据集必须是面数据集。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        以下代码示范了对两个面数据集进行相交方式的叠加分析。
         public void overlayAnalystIntersect1() {
                // 返回被相交的矢量数据集与用于相交的矢量数据集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
                DatasetVector datasetIntersected = (DatasetVector) targetDatasource.
                                                   getDatasets().get("Frame_R");
                DatasetVector datasetIntersect = (DatasetVector) targetDatasource.
                                                 getDatasets().get("ResidentialArea");
        
                // 创建一个面矢量数据集,用于存储相交分析返回的结果
                String resultDatasetIntersectName = targetDatasource.getDatasets().
                                                    getAvailableDatasetName(
                        "resultDatasetIntersect");
                DatasetVectorInfo datasetvectorInfoIntersect = new DatasetVectorInfo();
                datasetvectorInfoIntersect.setType(DatasetType.REGION);
                datasetvectorInfoIntersect.setName(resultDatasetIntersectName);
                datasetvectorInfoIntersect.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetIntersect = targetDatasource.getDatasets().
                                                       create(
                        datasetvectorInfoIntersect);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamIntersect = new
                        OverlayAnalystParameter();
                overlayAnalystParamIntersect.setOperationRetainedFields(new String[] {
                        "ClassID"});
                overlayAnalystParamIntersect.setSourceRetainedFields(new String[] {
                        "Name"});
                overlayAnalystParamIntersect.setTolerance(0.0000011074);
        
                // 调用相交叠加分析方法实相交分析
                OverlayAnalyst.intersect(datasetIntersected, datasetIntersect,
                                         resultDatasetIntersect,
                                         overlayAnalystParamIntersect);
        
                // 释放工作空间占有的资源
                workspace.dispose();
        
            }
      • intersect

        @Deprecated
        public static boolean intersect(Recordset recordset,
                                                     Recordset intersectRecordset,
                                                     DatasetVector resultDataset,
                                                     OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.intersect(Recordset, Recordset, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        进行相交方式的叠加分析,将被相交叠加分析的记录集中不包含在用来相交叠加分析的记录集中的对象切割并删除。

        有关相交运算的详细介绍,请参见另一重载方法 intersect 的介绍。

        注意,用来相交叠加分析的记录集、被相交分析的记录集以及结果数据集的地理坐标系必须一致。

        参数:
        recordset - 被相交叠加分析的记录集,该类型可以是点、线、面类型。
        intersectRecordset - 用来相交叠加分析的记录集,必须是面。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        以下代码示范了对两个面记录集进行相交方式的叠加分析。
           public void overlayAnalystIntersect2() {
                // 返回被相交的记录集与用于相交的记录集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
        
                DatasetVector datasetIntersected = (DatasetVector) targetDatasource.
                                                   getDatasets().get("Frame_R");
                Recordset queryResultIntersected = datasetIntersected.getRecordset(false,
                        CursorType.DYNAMIC);
        
                DatasetVector datasetIntersect = (DatasetVector) targetDatasource.
                                                 getDatasets().get("ResidentialArea");
                QueryParameter queryParamIntersect = new QueryParameter();
                queryParamIntersect.setAttributeFilter("ClassID = 32023");
                queryParamIntersect.setHasGeometry(true);
                Recordset queryResultIntersect = datasetIntersect.query(
                        queryParamIntersect);
        
                // 创建一个面矢量数据集,用于存储相交分析返回的结果
                String resultDatasetIntersectName = targetDatasource.getDatasets().
                                                    getAvailableDatasetName(
                        "resultDatasetIntersect");
                DatasetVectorInfo datasetvectorInfoIntersect = new DatasetVectorInfo();
                datasetvectorInfoIntersect.setType(DatasetType.REGION);
                datasetvectorInfoIntersect.setName(resultDatasetIntersectName);
                datasetvectorInfoIntersect.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetIntersect = targetDatasource.getDatasets().
                                                       create(
                        datasetvectorInfoIntersect);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamIntersect = new
                        OverlayAnalystParameter();
                overlayAnalystParamIntersect.setOperationRetainedFields(new String[] {
                        "ClassID"});
                overlayAnalystParamIntersect.setSourceRetainedFields(new String[] {
                        "Name"});
                overlayAnalystParamIntersect.setTolerance(0.0000011074);
        
                // 调用相交叠加分析方法实相交分析
                OverlayAnalyst.intersect(queryResultIntersected, queryResultIntersect,
                                         resultDatasetIntersect,
                                         overlayAnalystParamIntersect);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • intersect

        public static boolean intersect(Recordset recordset,
                                        Recordset intersectRecordset,
                                        DatasetVector resultDataset,
                                        OverlayAnalystParameter parameter,
                                        SteppedListener... listeners)
        进行相交方式的叠加分析,将被相交叠加分析的记录集中不包含在用来相交叠加分析的记录集中的对象切割并删除。

        有关相交运算的详细介绍,请参见另一重载方法 intersect 的介绍。

        注意,用来相交叠加分析的记录集、被相交分析的记录集以及结果数据集的地理坐标系必须一致。

        参数:
        recordset - 被相交叠加分析的记录集,该类型可以是点、线、面类型。
        intersectRecordset - 用来相交叠加分析的记录集,必须是面。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回值为 true,失败返回值为 false。
        示范代码:
        以下代码示范了对两个面记录集进行相交方式的叠加分析。
           public void overlayAnalystIntersect2() {
                // 返回被相交的记录集与用于相交的记录集
                Workspace workspace = new Workspace();
                DatasourceConnectionInfo datasourceConnectionInfo = new
                        DatasourceConnectionInfo(
                        "G:/SampleData/changchun/changchun.udb", "changchun", "");
                Datasource targetDatasource = workspace.getDatasources().open(
                        datasourceConnectionInfo);
        
                DatasetVector datasetIntersected = (DatasetVector) targetDatasource.
                                                   getDatasets().get("Frame_R");
                Recordset queryResultIntersected = datasetIntersected.getRecordset(false,
                        CursorType.DYNAMIC);
        
                DatasetVector datasetIntersect = (DatasetVector) targetDatasource.
                                                 getDatasets().get("ResidentialArea");
                QueryParameter queryParamIntersect = new QueryParameter();
                queryParamIntersect.setAttributeFilter("ClassID = 32023");
                queryParamIntersect.setHasGeometry(true);
                Recordset queryResultIntersect = datasetIntersect.query(
                        queryParamIntersect);
        
                // 创建一个面矢量数据集,用于存储相交分析返回的结果
                String resultDatasetIntersectName = targetDatasource.getDatasets().
                                                    getAvailableDatasetName(
                        "resultDatasetIntersect");
                DatasetVectorInfo datasetvectorInfoIntersect = new DatasetVectorInfo();
                datasetvectorInfoIntersect.setType(DatasetType.REGION);
                datasetvectorInfoIntersect.setName(resultDatasetIntersectName);
                datasetvectorInfoIntersect.setEncodeType(EncodeType.NONE);
                DatasetVector resultDatasetIntersect = targetDatasource.getDatasets().
                                                       create(
                        datasetvectorInfoIntersect);
        
                // 设置叠加分析参数
                OverlayAnalystParameter overlayAnalystParamIntersect = new
                        OverlayAnalystParameter();
                overlayAnalystParamIntersect.setOperationRetainedFields(new String[] {
                        "ClassID"});
                overlayAnalystParamIntersect.setSourceRetainedFields(new String[] {
                        "Name"});
                overlayAnalystParamIntersect.setTolerance(0.0000011074);
        
                // 调用相交叠加分析方法实相交分析
                OverlayAnalyst.intersect(queryResultIntersected, queryResultIntersect,
                                         resultDatasetIntersect,
                                         overlayAnalystParamIntersect);
        
                // 释放工作空间占有的资源
                workspace.dispose();
            }
      • intersect

        @Deprecated
        public static boolean intersect(DatasetVector dataset,
                                                     Geometry[] intersectGeometries,
                                                     DatasetVector resultDataset,
                                                     OverlayAnalystParameter parameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.intersect(DatasetVector, Geometry[], DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
        进行相交方式的叠加分析,将被相交叠加分析的数据集中不包含在用来相交叠加分析的面对象数组的对象切割并删除。

        有关相交运算的详细介绍,请参见另一重载方法 intersect 的介绍。

        注意,用于相交叠加分析的面对象数组、被相交分析的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被相交叠加分析的数据集,该数据集的类型可以是点、线、面数据集。
        intersectGeometries - 用来相交叠加分析的面对象数组。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        返回:
        分析成功返回 true,失败返回 false。
      • intersect

        public static boolean intersect(DatasetVector dataset,
                                        Geometry[] intersectGeometries,
                                        DatasetVector resultDataset,
                                        OverlayAnalystParameter parameter,
                                        SteppedListener... listeners)
        进行相交方式的叠加分析,将被相交叠加分析的数据集中不包含在用来相交叠加分析的面对象数组的对象切割并删除。

        有关相交运算的详细介绍,请参见另一重载方法 intersect 的介绍。

        注意,用于相交叠加分析的面对象数组、被相交分析的数据集以及结果数据集的地理坐标系必须一致。

        参数:
        dataset - 被相交叠加分析的数据集,该数据集的类型可以是点、线、面数据集。
        intersectGeometries - 用来相交叠加分析的面对象数组。
        resultDataset - 存放分析结果的数据集。
        parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
        listeners - 用于接收进度条事件的监听器。
        返回:
        分析成功返回 true,失败返回 false。
      • intersect

        public static OverlayResult[] intersect(Geometry[] intersectSourceGeometries,
                                                Geometry[] intersectTargetGeometries,
                                                double tolerance)
        进行相交方式的叠加分析,将被相交叠加分析的几何对象数组中不包含在用来相交叠加分析的目标几何对象数组的对象切割并删除。

        有关相交运算的详细介绍,请参见另一重载方法 intersect 的介绍。

        参数:
        intersectSourceGeometries - 被相交叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
        intersectTargetGeometries - 用于相交的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        tolerance - 节点容限,建议根据数据精度设置节点容限,容限值应大于数据精度。
        返回:
        叠加分析结果数组,如果成功返回 数组,否则返回 null。
      • intersect

        public static OverlayResult[] intersect(Geometry[] intersectSourceGeometries,
                                                Geometry[] intersectTargetGeometries,
                                                double tolerance,
                                                boolean isSupportOverlapInLayer)
        进行相交方式的叠加分析,将被相交叠加分析的几何对象数组中不包含在用来相交叠加分析的目标几何对象数组的对象切割并删除。可以支持面数据集内出现重叠面的情形。

        有关相交运算的详细介绍,请参见另一重载方法 intersect 的介绍。

        参数:
        intersectSourceGeometries - 被相交叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
        intersectTargetGeometries - 用于相交的几何对象数组,并且该数组中的几何对象必须是面几何对象。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        isSupportOverlapInLayer - 是否支持面数据集内含有重叠面的情形。
        返回:
        叠加分析结果数组,如果成功返回 数组,否则返回 null。
      • intersect

        public static DatasetVector intersect(DatasetVector[] datasets,
                                              OverlayOutputAttributeType outputAttributeType,
                                              double tolerance,
                                              Datasource resultDatasource,
                                              String resultDatasetName,
                                              SteppedListener... listeners)
        进行多数据集的相交方式的叠加分析。

        有关相交运算的详细介绍,请参见另一重载方法 intersect 的介绍。

        参数:
        datasets - 参加叠加分析的多个数据集。
        outputAttributeType - 叠加分析返回属性字段的形式。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        resultDatasource - 结果数据源。
        resultDatasetName - 结果数据集名称。
        listeners - 用于接收进度条事件的监听器。
        返回:
        结果数据集。
      • intersect

        public static DatasetVector intersect(Recordset[] recordsets,
                                              OverlayOutputAttributeType outputAttributeType,
                                              double tolerance,
                                              Datasource resultDatasource,
                                              String resultDatasetName,
                                              SteppedListener... listeners)
        进行多记录集的相交方式的叠加分析。

        有关相交运算的详细介绍,请参见另一重载方法 intersect 的介绍。

        参数:
        recordsets - 参加叠加分析的多个记录集。
        outputAttributeType - 叠加分析返回属性字段的形式。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        resultDatasource - 结果数据源。
        resultDatasetName - 结果数据集名称。
        listeners - 用于接收进度条事件的监听器。
        返回:
        结果数据集。
      • intersect

        public static MultilayerOverlayResult[] intersect(List<Geometry[]> geometries,
                                                          double tolerance)
        几何对象数组相交叠加分析,支持多个几何对象数组。

        有关相交运算的详细介绍,请参见另一重载方法 intersect 的介绍。

        参数:
        geometries - 参加叠加分析的多个对象数组。
        tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
        返回:
        多图层叠加分析结果对象数组。
参数:
dataset - 被对称差分析的源数据集,必须是面数据集。
xORDataset - 用于对称差分析的数据集,必须是面数据集。
resultDataset - 存放分析结果的数据集。
parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
返回:
分析成功返回值为 true,失败返回值为 false。
示范代码:
以下代码示范了对两个面数据集进行对称差分析运算
    public void overlayAnalystXOR1() {
        // 返回被对称差分析的数据集与用于对称差分析的数据集
        Workspace workspace = new Workspace();
        DatasourceConnectionInfo datasourceConnectionInfo = new
                DatasourceConnectionInfo(
                "G:/SampleData/changchun/changchun.udb", "changchun", "");
        Datasource targetDatasource = workspace.getDatasources().open(
                datasourceConnectionInfo);
        DatasetVector datasetXORed = (DatasetVector) targetDatasource.
                                     getDatasets().get("Frame_R");
        DatasetVector datasetXOR = (DatasetVector) targetDatasource.getDatasets().
                                   get("ResidentialArea");

        // 创建一个面矢量数据集,用于存储对称差分析返回的结果
        String resultDatasetXORName = targetDatasource.getDatasets().
                                      getAvailableDatasetName(
                "resultDatasetXOR");
        DatasetVectorInfo datasetvectorInfoXOR = new DatasetVectorInfo();
        datasetvectorInfoXOR.setType(DatasetType.REGION);
        datasetvectorInfoXOR.setName(resultDatasetXORName);
        datasetvectorInfoXOR.setEncodeType(EncodeType.NONE);
        DatasetVector resultDatasetXOR = targetDatasource.getDatasets().create(
                datasetvectorInfoXOR);

        // 设置叠加分析参数
        OverlayAnalystParameter overlayAnalystParamXOR = new
                OverlayAnalystParameter();
        overlayAnalystParamXOR.setTolerance(0.0089078724);

        // 调用对称差分析方法对称差分析
        OverlayAnalyst.xOR(datasetXORed, datasetXOR, resultDatasetXOR,
                           overlayAnalystParamXOR);

        //释放工作空间占有的资源
        workspace.dispose();
    }
  • xOR

    public static boolean xOR(DatasetVector dataset,
                              DatasetVector xORDataset,
                              DatasetVector resultDataset,
                              OverlayAnalystParameter parameter,
                              SteppedListener... listeners)
    对两个面数据集进行对称差分析运算。即交集取反运算。
  • 用于对称差分析的数据集、被对称差分析的数据集以及结果数据集的地理坐标系必须一致。

    对称差运算是两个数据集的异或运算。操作的结果是,对于每一个面对象,去掉其与另一个数据集中的几何对象相交的部分,而保留剩下的部分。对称差运算的输出结果的属性表包含两个输入数据集的非系统属性字段。

参数:
dataset - 被对称差分析的源数据集,必须是面数据集。
xORDataset - 用于对称差分析的数据集,必须是面数据集。
resultDataset - 存放分析结果的数据集。
parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
listeners - 用于接收进度条事件的监听器。
返回:
分析成功返回值为 true,失败返回值为 false。
示范代码:
以下代码示范了对两个面数据集进行对称差分析运算
    public void overlayAnalystXOR1() {
        // 返回被对称差分析的数据集与用于对称差分析的数据集
        Workspace workspace = new Workspace();
        DatasourceConnectionInfo datasourceConnectionInfo = new
                DatasourceConnectionInfo(
                "G:/SampleData/changchun/changchun.udb", "changchun", "");
        Datasource targetDatasource = workspace.getDatasources().open(
                datasourceConnectionInfo);
        DatasetVector datasetXORed = (DatasetVector) targetDatasource.
                                     getDatasets().get("Frame_R");
        DatasetVector datasetXOR = (DatasetVector) targetDatasource.getDatasets().
                                   get("ResidentialArea");

        // 创建一个面矢量数据集,用于存储对称差分析返回的结果
        String resultDatasetXORName = targetDatasource.getDatasets().
                                      getAvailableDatasetName(
                "resultDatasetXOR");
        DatasetVectorInfo datasetvectorInfoXOR = new DatasetVectorInfo();
        datasetvectorInfoXOR.setType(DatasetType.REGION);
        datasetvectorInfoXOR.setName(resultDatasetXORName);
        datasetvectorInfoXOR.setEncodeType(EncodeType.NONE);
        DatasetVector resultDatasetXOR = targetDatasource.getDatasets().create(
                datasetvectorInfoXOR);

        // 设置叠加分析参数
        OverlayAnalystParameter overlayAnalystParamXOR = new
                OverlayAnalystParameter();
        overlayAnalystParamXOR.setTolerance(0.0089078724);

        // 调用对称差分析方法对称差分析
        OverlayAnalyst.xOR(datasetXORed, datasetXOR, resultDatasetXOR,
                           overlayAnalystParamXOR);

        //释放工作空间占有的资源
        workspace.dispose();
    }
  • xOR

    @Deprecated
    public static boolean xOR(Recordset recordset,
                                           Recordset xORRecordset,
                                           DatasetVector resultDataset,
                                           OverlayAnalystParameter parameter)
    已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.xOR(Recordset, Recordset, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
    对两个面记录集进行对称差分析运算。

    有关对称差运算的详细介绍,请参见另一重载方法 xOR 的介绍。

    注意,用于对称差分析的记录集、被对称差分析的记录集以及结果数据集的地理坐标系必须一致。

    参数:
    recordset - 被对称差分析的源记录集,必须是面。
    xORRecordset - 用于对称差分析的记录集,必须是面。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面记录集进行对称差分析运算。
       public void overlayAnalystXOR2() {
            // 返回被对称差分析的记录集与用于对称差分析的记录集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo(
                    "G:/SampleData/changchun/changchun.udb", "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
    
            DatasetVector datasetXORed = (DatasetVector) targetDatasource.
                                         getDatasets().get("Frame_R");
            Recordset queryResultXORed = datasetXORed.getRecordset(false,
                    CursorType.DYNAMIC);
    
            DatasetVector datasetXOR = (DatasetVector) targetDatasource.getDatasets().
                                       get("ResidentialArea");
            QueryParameter queryParamXOR = new QueryParameter();
            queryParamXOR.setAttributeFilter("ClassID = 32023");
            queryParamXOR.setHasGeometry(true);
            Recordset queryResultXOR = datasetXOR.query(queryParamXOR);
    
            // 创建一个面矢量数据集,用于存储对称差分析的结果
            String resultDatasetXORName = targetDatasource.getDatasets().
                                          getAvailableDatasetName(
                    "resultDatasetXOR");
            DatasetVectorInfo datasetvectorInfoXOR = new DatasetVectorInfo();
            datasetvectorInfoXOR.setType(DatasetType.REGION);
            datasetvectorInfoXOR.setName(resultDatasetXORName);
            datasetvectorInfoXOR.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetXOR = targetDatasource.getDatasets().create(
                    datasetvectorInfoXOR);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamXOR = new
                    OverlayAnalystParameter();
            overlayAnalystParamXOR.setTolerance(0.0089078724);
    
            // 调用对称差分析方法实对称差分析
            OverlayAnalyst.xOR(queryResultXORed, queryResultXOR, resultDatasetXOR,
                               overlayAnalystParamXOR);
    
            // 释放工作空间占有的资源
            workspace.dispose();
        }
  • xOR

    public static boolean xOR(Recordset recordset,
                              Recordset xORRecordset,
                              DatasetVector resultDataset,
                              OverlayAnalystParameter parameter,
                              SteppedListener... listeners)
    对两个面记录集进行对称差分析运算。

    有关对称差运算的详细介绍,请参见另一重载方法 xOR 的介绍。

    注意,用于对称差分析的记录集、被对称差分析的记录集以及结果数据集的地理坐标系必须一致。

    参数:
    recordset - 被对称差分析的源记录集,必须是面。
    xORRecordset - 用于对称差分析的记录集,必须是面。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    listeners - 用于接收进度条事件的监听器。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面记录集进行对称差分析运算。
       public void overlayAnalystXOR2() {
            // 返回被对称差分析的记录集与用于对称差分析的记录集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo(
                    "G:/SampleData/changchun/changchun.udb", "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
    
            DatasetVector datasetXORed = (DatasetVector) targetDatasource.
                                         getDatasets().get("Frame_R");
            Recordset queryResultXORed = datasetXORed.getRecordset(false,
                    CursorType.DYNAMIC);
    
            DatasetVector datasetXOR = (DatasetVector) targetDatasource.getDatasets().
                                       get("ResidentialArea");
            QueryParameter queryParamXOR = new QueryParameter();
            queryParamXOR.setAttributeFilter("ClassID = 32023");
            queryParamXOR.setHasGeometry(true);
            Recordset queryResultXOR = datasetXOR.query(queryParamXOR);
    
            // 创建一个面矢量数据集,用于存储对称差分析的结果
            String resultDatasetXORName = targetDatasource.getDatasets().
                                          getAvailableDatasetName(
                    "resultDatasetXOR");
            DatasetVectorInfo datasetvectorInfoXOR = new DatasetVectorInfo();
            datasetvectorInfoXOR.setType(DatasetType.REGION);
            datasetvectorInfoXOR.setName(resultDatasetXORName);
            datasetvectorInfoXOR.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetXOR = targetDatasource.getDatasets().create(
                    datasetvectorInfoXOR);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamXOR = new
                    OverlayAnalystParameter();
            overlayAnalystParamXOR.setTolerance(0.0089078724);
    
            // 调用对称差分析方法实对称差分析
            OverlayAnalyst.xOR(queryResultXORed, queryResultXOR, resultDatasetXOR,
                               overlayAnalystParamXOR);
    
            // 释放工作空间占有的资源
            workspace.dispose();
        }
  • xOR

    public static boolean xOR(DatasetVector dataset,
                              Geometry[] xorGeometries,
                              DatasetVector resultDataset,
                              OverlayAnalystParameter parameter,
                              SteppedListener... listeners)
    对两个面数据集进行对称差分析运算。即交集取反运算。
  • 用于对称差分析的数据集、被对称差分析的数据集以及结果数据集的地理坐标系必须一致。

    对称差运算是两个数据集的异或运算。操作的结果是,对于每一个面对象,去掉其与另一个数据集中的几何对象相交的部分,而保留剩下的部分。对称差运算的输出结果的属性表包含两个输入数据集的非系统属性字段。

    参数:
    dataset - 被对称差分析的源数据集,必须是面数据集。
    xorGeometries - 用于对称差分析的数据集,必须是面对象。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    listeners - 用于接收进度条事件的监听器。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面数据集进行对称差分析运算
        public void overlayAnalystXOR1() {
            // 返回被对称差分析的数据集与用于对称差分析的数据集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo(
                    "G:/SampleData/changchun/changchun.udb", "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
            DatasetVector datasetXORed = (DatasetVector) targetDatasource.
                                         getDatasets().get("Frame_R");
            DatasetVector datasetXOR = (DatasetVector) targetDatasource.getDatasets().
                                       get("ResidentialArea");
    
            // 创建一个面矢量数据集,用于存储对称差分析返回的结果
            String resultDatasetXORName = targetDatasource.getDatasets().
                                          getAvailableDatasetName(
                    "resultDatasetXOR");
            DatasetVectorInfo datasetvectorInfoXOR = new DatasetVectorInfo();
            datasetvectorInfoXOR.setType(DatasetType.REGION);
            datasetvectorInfoXOR.setName(resultDatasetXORName);
            datasetvectorInfoXOR.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetXOR = targetDatasource.getDatasets().create(
                    datasetvectorInfoXOR);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamXOR = new
                    OverlayAnalystParameter();
            overlayAnalystParamXOR.setTolerance(0.0089078724);
    
            // 调用对称差分析方法对称差分析
            OverlayAnalyst.xOR(datasetXORed, datasetXOR, resultDatasetXOR,
                               overlayAnalystParamXOR);
    
            //释放工作空间占有的资源
            workspace.dispose();
        }
  • xOR

    public static OverlayResult[] xOR(Geometry[] xORSourceGeometries,
                                      Geometry[] xORTargetGeometries,
                                      double tolerance)
    对源几何对象数组用目标几何对象数组进行对称差分析运算,即交集取反运算。操作的结果是,对于源几何对象数组中的每一个面对象,去掉其与目标几何对象数组中的对象相交的部分,而保留剩下的部分。

    有关对称差运算的详细介绍,请参见另一重载方法 xOR 的介绍。

    参数:
    xORSourceGeometries - 对称差分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    xORTargetGeometries - 用于对称差分析的几何对象数组,并且该数组中的几何对象必须是面几何对象。
    tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
    返回:
    叠加分析结果数组,如果成功返回 数组,否则返回 null。
  • xOR

    public static OverlayResult[] xOR(Geometry[] xORSourceGeometries,
                                      Geometry[] xORTargetGeometries,
                                      double tolerance,
                                      boolean isSupportOverlapInLayer)
    对源几何对象数组用目标几何对象数组进行对称差分析运算,即交集取反运算。操作的结果是,对于源几何对象数组中的每一个面对象,去掉其与目标几何对象数组中的对象相交的部分,而保留剩下的部分。可以支持面数据集内出现重叠面的情形。

    有关对称差运算的详细介绍,请参见另一重载方法 xOR 的介绍。

    参数:
    xORSourceGeometries - 对称差分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    xORTargetGeometries - 用于对称差分析的几何对象数组,并且该数组中的几何对象必须是面几何对象。
    tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
    isSupportOverlapInLayer - 是否支持面数据集内含有重叠面的情形。
    返回:
    叠加分析结果数组,如果成功返回 数组,否则返回 null。
  • union

    @Deprecated
    public static boolean union(DatasetVector dataset,
                                             DatasetVector unionDataset,
                                             DatasetVector resultDataset,
                                             OverlayAnalystParameter parameter)
    已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.union(DatasetVector, DatasetVector, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
    用于对两个面数据集进行合并方式的叠加分析,结果数据集中保存被合并叠加分析的数据集和用于合并叠加分析的数据集中的全部对象,并且对相交部分进行求交和分割运算。 注意:
    1. 合并是求两个数据集并的运算,合并后的图层保留两个数据集所有图层要素,只限于两个面数据集之间进行。
    2. 进行 union 运算后,两个面数据集在相交处多边形被分割,且两个数据集的几何和属性信息都被输出到结果数据集中。
    3. 用于合并叠加分析的数据集、被合并叠加分析的数据集以及结果数据集的地理坐标系必须一致。

    参数:
    dataset - 被合并叠加分析的数据集,必须是面数据集类型。
    unionDataset - 用于合并叠加分析的数据集,必须是面数据集类型。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面数据集进行合并方式的叠加分析。
     public void overlayAnalystUnion1() {
            // 返回被合并的矢量数据集与用于合并的矢量数据集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo("G:/changchun/changchun.udb",
                                             "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
            DatasetVector datasetUnioned = (DatasetVector) targetDatasource.
                                           getDatasets().get("ResidentialArea");
            DatasetVector datasetUnion = (DatasetVector) targetDatasource.
                                         getDatasets().get("Frame_R");
    
            // 创建一个面矢量数据集,用于存储合并分析返回的结果
            String resultDatasetUnionName = targetDatasource.getDatasets().
                                            getAvailableDatasetName(
                    "resultDatasetUnion");
            DatasetVectorInfo datasetvectorInfoUnion = new DatasetVectorInfo();
            datasetvectorInfoUnion.setType(DatasetType.REGION);
            datasetvectorInfoUnion.setName(resultDatasetUnionName);
            datasetvectorInfoUnion.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetUnion = targetDatasource.getDatasets().
                                               create(datasetvectorInfoUnion);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamUnion = new
                    OverlayAnalystParameter();
            overlayAnalystParamUnion.setOperationRetainedFields(new String[] {
                    "Name"});
            overlayAnalystParamUnion.setSourceRetainedFields(new String[] {
                    "ClassID"});
            overlayAnalystParamUnion.setTolerance(0.0000011074);
    
            // 调用合并叠加分析方法实合并分析
            OverlayAnalyst.union(datasetUnioned, datasetUnion, resultDatasetUnion,
                                 overlayAnalystParamUnion);
    
            // 释放工作空间占有的资源
            workspace.dispose();
    
        }
  • union

    public static boolean union(DatasetVector dataset,
                                DatasetVector unionDataset,
                                DatasetVector resultDataset,
                                OverlayAnalystParameter parameter,
                                SteppedListener... listeners)
    用于对两个面数据集进行合并方式的叠加分析,结果数据集中保存被合并叠加分析的数据集和用于合并叠加分析的数据集中的全部对象,并且对相交部分进行求交和分割运算。 注意:
    1. 合并是求两个数据集并的运算,合并后的图层保留两个数据集所有图层要素,只限于两个面数据集之间进行。
    2. 进行 union 运算后,两个面数据集在相交处多边形被分割,且两个数据集的几何和属性信息都被输出到结果数据集中。
    3. 用于合并叠加分析的数据集、被合并叠加分析的数据集以及结果数据集的地理坐标系必须一致。

    参数:
    dataset - 被合并叠加分析的数据集,必须是面数据集类型。
    unionDataset - 用于合并叠加分析的数据集,必须是面数据集类型。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    listeners - 用于接收进度条事件的监听器。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面数据集进行合并方式的叠加分析。
     public void overlayAnalystUnion1() {
            // 返回被合并的矢量数据集与用于合并的矢量数据集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo("G:/changchun/changchun.udb",
                                             "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
            DatasetVector datasetUnioned = (DatasetVector) targetDatasource.
                                           getDatasets().get("ResidentialArea");
            DatasetVector datasetUnion = (DatasetVector) targetDatasource.
                                         getDatasets().get("Frame_R");
    
            // 创建一个面矢量数据集,用于存储合并分析返回的结果
            String resultDatasetUnionName = targetDatasource.getDatasets().
                                            getAvailableDatasetName(
                    "resultDatasetUnion");
            DatasetVectorInfo datasetvectorInfoUnion = new DatasetVectorInfo();
            datasetvectorInfoUnion.setType(DatasetType.REGION);
            datasetvectorInfoUnion.setName(resultDatasetUnionName);
            datasetvectorInfoUnion.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetUnion = targetDatasource.getDatasets().
                                               create(datasetvectorInfoUnion);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamUnion = new
                    OverlayAnalystParameter();
            overlayAnalystParamUnion.setOperationRetainedFields(new String[] {
                    "Name"});
            overlayAnalystParamUnion.setSourceRetainedFields(new String[] {
                    "ClassID"});
            overlayAnalystParamUnion.setTolerance(0.0000011074);
    
            // 调用合并叠加分析方法实合并分析
            OverlayAnalyst.union(datasetUnioned, datasetUnion, resultDatasetUnion,
                                 overlayAnalystParamUnion);
    
            // 释放工作空间占有的资源
            workspace.dispose();
    
        }
  • union

    @Deprecated
    public static boolean union(Recordset recordset,
                                             Recordset unionRecordset,
                                             DatasetVector resultDataset,
                                             OverlayAnalystParameter parameter)
    已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.union(Recordset, Recordset, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
    用于对两个面记录集进行合并方式的叠加分析,结果数据集中保存 被合并叠加分析的记录集和用于合并叠加分析的记录集中的全部对象,并且对相交部分进行求交和分割运算。

    有关合并运算的详细介绍,请参见另一重载方法 union 的介绍。

    注意,用于合并叠加分析的记录集、被合并叠加分析的记录集以及结果数据集的地理坐标系必须一致。

    参数:
    recordset - 被合并叠加分析的记录集,必须是面。
    unionRecordset - 用于合并叠加分析的记录集,必须是面。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面记录集进行合并方式的叠加分析。
      public void overlayAnalystUnion2() {
            // 返回被合并的记录集与用于合并的记录集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo(
                    "G:/SampleData/changchun/changchun.udb", "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
    
            DatasetVector datasetUnioned = (DatasetVector) targetDatasource.
                                           getDatasets().get("ResidentialArea");
            QueryParameter queryParamUnioned = new QueryParameter();
            queryParamUnioned.setAttributeFilter("ClassID = 32023");
            queryParamUnioned.setHasGeometry(true);
            Recordset queryResultUnioned = datasetUnioned.query(queryParamUnioned);
    
            DatasetVector datasetUnion = (DatasetVector) targetDatasource.
                                         getDatasets().get("Frame_R");
            Recordset queryResultUnion = datasetUnion.getRecordset(false,
                    CursorType.DYNAMIC);
    
            // 创建一个面矢量数据集,用于存储合并分析返回的结果
            String resultDatasetUnionName = targetDatasource.getDatasets().
                                            getAvailableDatasetName(
                    "resultDatasetUnion");
            DatasetVectorInfo datasetvectorInfoUnion = new DatasetVectorInfo();
            datasetvectorInfoUnion.setType(DatasetType.REGION);
            datasetvectorInfoUnion.setName(resultDatasetUnionName);
            datasetvectorInfoUnion.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetUnion = targetDatasource.getDatasets().
                                               create(datasetvectorInfoUnion);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamUnion = new
                    OverlayAnalystParameter();
            overlayAnalystParamUnion.setOperationRetainedFields(new String[] {
                    "Name"});
            overlayAnalystParamUnion.setSourceRetainedFields(new String[] {
                    "ClassID"});
            overlayAnalystParamUnion.setTolerance(0.0000011074);
    
            // 调用合并叠加分析方法实合并分析
            OverlayAnalyst.union(queryResultUnioned, queryResultUnion,
                                 resultDatasetUnion, overlayAnalystParamUnion);
    
            // 释放工作空间占有的资源
            workspace.dispose();
        }
  • union

    public static boolean union(Recordset recordset,
                                Recordset unionRecordset,
                                DatasetVector resultDataset,
                                OverlayAnalystParameter parameter,
                                SteppedListener... listeners)
    用于对两个面记录集进行合并方式的叠加分析,结果数据集中保存 被合并叠加分析的记录集和用于合并叠加分析的记录集中的全部对象,并且对相交部分进行求交和分割运算。

    有关合并运算的详细介绍,请参见另一重载方法 union 的介绍。

    注意,用于合并叠加分析的记录集、被合并叠加分析的记录集以及结果数据集的地理坐标系必须一致。

    参数:
    recordset - 被合并叠加分析的记录集,必须是面。
    unionRecordset - 用于合并叠加分析的记录集,必须是面。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    listeners - 用于接收进度条事件的监听器。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面记录集进行合并方式的叠加分析。
      public void overlayAnalystUnion2() {
            // 返回被合并的记录集与用于合并的记录集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo(
                    "G:/SampleData/changchun/changchun.udb", "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
    
            DatasetVector datasetUnioned = (DatasetVector) targetDatasource.
                                           getDatasets().get("ResidentialArea");
            QueryParameter queryParamUnioned = new QueryParameter();
            queryParamUnioned.setAttributeFilter("ClassID = 32023");
            queryParamUnioned.setHasGeometry(true);
            Recordset queryResultUnioned = datasetUnioned.query(queryParamUnioned);
    
            DatasetVector datasetUnion = (DatasetVector) targetDatasource.
                                         getDatasets().get("Frame_R");
            Recordset queryResultUnion = datasetUnion.getRecordset(false,
                    CursorType.DYNAMIC);
    
            // 创建一个面矢量数据集,用于存储合并分析返回的结果
            String resultDatasetUnionName = targetDatasource.getDatasets().
                                            getAvailableDatasetName(
                    "resultDatasetUnion");
            DatasetVectorInfo datasetvectorInfoUnion = new DatasetVectorInfo();
            datasetvectorInfoUnion.setType(DatasetType.REGION);
            datasetvectorInfoUnion.setName(resultDatasetUnionName);
            datasetvectorInfoUnion.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetUnion = targetDatasource.getDatasets().
                                               create(datasetvectorInfoUnion);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamUnion = new
                    OverlayAnalystParameter();
            overlayAnalystParamUnion.setOperationRetainedFields(new String[] {
                    "Name"});
            overlayAnalystParamUnion.setSourceRetainedFields(new String[] {
                    "ClassID"});
            overlayAnalystParamUnion.setTolerance(0.0000011074);
    
            // 调用合并叠加分析方法实合并分析
            OverlayAnalyst.union(queryResultUnioned, queryResultUnion,
                                 resultDatasetUnion, overlayAnalystParamUnion);
    
            // 释放工作空间占有的资源
            workspace.dispose();
        }
  • union

    @Deprecated
    public static boolean union(DatasetVector dataset,
                                             Geometry[] unionGeometries,
                                             DatasetVector resultDataset,
                                             OverlayAnalystParameter parameter)
    已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.union(DatasetVector, Geometry[], DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
    对面数据集用面对象数组进行合并方式的叠加分析,结果数据集中保存被合并叠加分析的数据集和用于合并叠加分析的面对象数组中的全部对象,并且对相交部分进行求交和分割运算。

    有关合并运算的详细介绍,请参见另一重载方法 union 的介绍。

    注意,用于合并叠加分析的面对象数组、被合并叠加分析的数据集以及结果数据集的地理坐标系必须一致。

    参数:
    dataset - 被合并叠加分析的数据集,必须是面数据集。
    unionGeometries - 用于合并叠加分析的面对象数组。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    返回:
    分析成功返回 true,失败返回 false。
  • union

    public static boolean union(DatasetVector dataset,
                                Geometry[] unionGeometries,
                                DatasetVector resultDataset,
                                OverlayAnalystParameter parameter,
                                SteppedListener... listeners)
    对面数据集用面对象数组进行合并方式的叠加分析,结果数据集中保存被合并叠加分析的数据集和用于合并叠加分析的面对象数组中的全部对象,并且对相交部分进行求交和分割运算。

    有关合并运算的详细介绍,请参见另一重载方法 union 的介绍。

    注意,用于合并叠加分析的面对象数组、被合并叠加分析的数据集以及结果数据集的地理坐标系必须一致。

    参数:
    dataset - 被合并叠加分析的数据集,必须是面数据集。
    unionGeometries - 用于合并叠加分析的面对象数组。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    listeners - 用于接收进度条事件的监听器。
    返回:
    分析成功返回 true,失败返回 false。
  • union

    public static OverlayResult[] union(Geometry[] unionSourceGeometries,
                                        Geometry[] unionTargetGeometries,
                                        double tolerance)
    对源几何对象数组用目标几何对象数组进行合并方式的叠加分析,叠加分析结果数组保存被合并叠加分析的源几何对象数组和用于合并叠加分析的目标几何对象数组中的全部对象,并且对相交部分进行求交和分割运算。

    有关合并运算的详细介绍,请参见另一重载方法 union 的介绍。

    参数:
    unionSourceGeometries - 被合并叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    unionTargetGeometries - 用于合并叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
    返回:
    叠加分析结果数组,如果成功返回 数组,否则返回 null。
  • union

    public static OverlayResult[] union(Geometry[] unionSourceGeometries,
                                        Geometry[] unionTargetGeometries,
                                        double tolerance,
                                        boolean isSupportOverlapInLayer)
    对源几何对象数组用目标几何对象数组进行合并方式的叠加分析,叠加分析结果数组保存被合并叠加分析的源几何对象数组和用于合并叠加分析的目标几何对象数组中的全部对象,并且对相交部分进行求交和分割运算。可以支持面数据集内出现重叠面的情形。

    有关合并运算的详细介绍,请参见另一重载方法 union 的介绍。

    参数:
    unionSourceGeometries - 被合并叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    unionTargetGeometries - 用于合并叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
    isSupportOverlapInLayer - 是否支持面数据集内含有重叠面的情形。
    返回:
    叠加分析结果数组,如果成功返回 数组,否则返回 null。
  • union

    public static DatasetVector union(DatasetVector[] datasets,
                                      OverlayOutputAttributeType outputAttributeType,
                                      double tolerance,
                                      Datasource resultDatasource,
                                      String resultDatasetName,
                                      SteppedListener... listeners)
    进行多数据集的合并方式的叠加分析。

    有关合并运算的详细介绍,请参见另一重载方法 union 的介绍。

    参数:
    datasets - 参加叠加分析的多个数据集。
    outputAttributeType - 叠加分析返回属性字段的形式。
    tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
    resultDatasource - 结果数据源。
    resultDatasetName - 结果数据集名称。
    listeners - 用于接收进度条事件的监听器。
    返回:
    结果数据集。
  • union

    public static DatasetVector union(Recordset[] recordsets,
                                      OverlayOutputAttributeType outputAttributeType,
                                      double tolerance,
                                      Datasource resultDatasource,
                                      String resultDatasetName,
                                      SteppedListener... listeners)
    进行多记录集的合并方式的叠加分析。

    有关合并运算的详细介绍,请参见另一重载方法 union 的介绍。

    参数:
    recordsets - 参加叠加分析的多个记录集。
    outputAttributeType - 叠加分析返回属性字段的形式。
    tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
    resultDatasource - 结果数据源。
    resultDatasetName - 结果数据集名称。
    listeners - 用于接收进度条事件的监听器。
    返回:
    结果数据集。
  • union

    public static MultilayerOverlayResult[] union(List<Geometry[]> geometries,
                                                  double tolerance)
    几何对象数组合并叠加分析,支持多个几何对象数组。

    有关合并运算的详细介绍,请参见另一重载方法 union 的介绍。

    参数:
    geometries - 参加叠加分析的多个对象数组。
    tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
    返回:
    多图层叠加分析结果对象数组。
  • update

    @Deprecated
    public static boolean update(DatasetVector dataset,
                                              DatasetVector updateDataset,
                                              DatasetVector resultDataset,
                                              OverlayAnalystParameter parameter)
    已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.update(DatasetVector, DatasetVector, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
    用于对两个面数据集进行更新方式的叠加分析, 更新运算是用用于更新的数据集替换与被更新数据集的重合部分,是一个先擦除后粘贴的过程。

    用于更新叠加分析的数据集、被更新叠加分析的数据集以及结果数据集的地理坐标系必须一致。

    第一数据集与第二数据集的类型都必须是面数据集。结果数据集中保留了更新数据集的几何形状和属性信息。

    参数:
    dataset - 被更新叠加分析的数据集,必须是面类型。
    updateDataset - 用于更新叠加分析的数据集,必须是面数据集。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面数据集进行更新方式的叠加分析。
     public void overlayAnalystUpdate1() {
            // 返回被更新的矢量数据集与用于更新的矢量数据集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo(
                    "G:/SampleData/changchun/changchun.udb", "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
            DatasetVector datasetUpdated = (DatasetVector) targetDatasource.
                                           getDatasets().get("Frame_R");
            DatasetVector datasetUpdate = (DatasetVector) targetDatasource.
                                          getDatasets().get("ResidentialArea");
    
            // 创建一个面矢量数据集,用于存储更新分析返回的结果
            String resultDatasetUpdateName = targetDatasource.getDatasets().
                                             getAvailableDatasetName(
                    "resultDatasetUpdate");
            DatasetVectorInfo datasetvectorInfoUpdate = new DatasetVectorInfo();
            datasetvectorInfoUpdate.setType(DatasetType.REGION);
            datasetvectorInfoUpdate.setName(resultDatasetUpdateName);
            datasetvectorInfoUpdate.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetUpdate = targetDatasource.getDatasets().
                                                create(datasetvectorInfoUpdate);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamUpdate = new
                    OverlayAnalystParameter();
            overlayAnalystParamUpdate.setTolerance(0.0089078724);
    
            // 调用更新叠加分析方法实更新分析
            OverlayAnalyst.update(datasetUpdated, datasetUpdate,
                                  resultDatasetUpdate, overlayAnalystParamUpdate);
    
            // 释放工作空间占有的资源
            workspace.dispose();
        }
  • update

    public static boolean update(DatasetVector dataset,
                                 DatasetVector updateDataset,
                                 DatasetVector resultDataset,
                                 OverlayAnalystParameter parameter,
                                 SteppedListener... listeners)
    用于对两个面数据集进行更新方式的叠加分析, 更新运算是用用于更新的数据集替换与被更新数据集的重合部分,是一个先擦除后粘贴的过程。

    用于更新叠加分析的数据集、被更新叠加分析的数据集以及结果数据集的地理坐标系必须一致。

    第一数据集与第二数据集的类型都必须是面数据集。结果数据集中保留了更新数据集的几何形状和属性信息。

    参数:
    dataset - 被更新叠加分析的数据集,必须是面类型。
    updateDataset - 用于更新叠加分析的数据集,必须是面数据集。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    listeners - 用于接收进度条事件的监听器。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面数据集进行更新方式的叠加分析。
     public void overlayAnalystUpdate1() {
            // 返回被更新的矢量数据集与用于更新的矢量数据集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo(
                    "G:/SampleData/changchun/changchun.udb", "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
            DatasetVector datasetUpdated = (DatasetVector) targetDatasource.
                                           getDatasets().get("Frame_R");
            DatasetVector datasetUpdate = (DatasetVector) targetDatasource.
                                          getDatasets().get("ResidentialArea");
    
            // 创建一个面矢量数据集,用于存储更新分析返回的结果
            String resultDatasetUpdateName = targetDatasource.getDatasets().
                                             getAvailableDatasetName(
                    "resultDatasetUpdate");
            DatasetVectorInfo datasetvectorInfoUpdate = new DatasetVectorInfo();
            datasetvectorInfoUpdate.setType(DatasetType.REGION);
            datasetvectorInfoUpdate.setName(resultDatasetUpdateName);
            datasetvectorInfoUpdate.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetUpdate = targetDatasource.getDatasets().
                                                create(datasetvectorInfoUpdate);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamUpdate = new
                    OverlayAnalystParameter();
            overlayAnalystParamUpdate.setTolerance(0.0089078724);
    
            // 调用更新叠加分析方法实更新分析
            OverlayAnalyst.update(datasetUpdated, datasetUpdate,
                                  resultDatasetUpdate, overlayAnalystParamUpdate);
    
            // 释放工作空间占有的资源
            workspace.dispose();
        }
  • update

    @Deprecated
    public static boolean update(Recordset recordset,
                                              Recordset updateRecordset,
                                              DatasetVector resultDataset,
                                              OverlayAnalystParameter parameter)
    已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.update(Recordset, Recordset, DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
    用于对两个面记录集进行更新方式的叠加分析,更新运算是用于更新的记录集替换它与被更新记录集的重合部分,是一个先擦除后粘贴的过程。

    有关更新运算的详细介绍,请参见另一重载方法 update 的介绍。

    注意,用于更新叠加分析的记录集、被更新叠加分析的记录集以及结果数据集的地理坐标系必须一致。

    参数:
    recordset - 被更新叠加分析的记录集,必须是面。
    updateRecordset - 用于更新叠加分析的记录集,必须是面。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面记录集进行更新方式的叠加分析。
       public void overlayAnalystUpdate2() {
            // 返回被更新的记录集与用于更新的记录集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo(
                    "G:/SampleData/changchun/changchun.udb", "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
    
            DatasetVector datasetUpdated = (DatasetVector) targetDatasource.
                                           getDatasets().get("Frame_R");
            Recordset queryResultUpdated = datasetUpdated.getRecordset(false,
                    CursorType.DYNAMIC);
    
            DatasetVector datasetUpdate = (DatasetVector) targetDatasource.
                                          getDatasets().get("ResidentialArea");
            QueryParameter queryParamUpdate = new QueryParameter();
            queryParamUpdate.setAttributeFilter("ClassID = 32023");
            queryParamUpdate.setHasGeometry(true);
            Recordset queryResultUpdate = datasetUpdate.query(queryParamUpdate);
    
            // 创建一个面矢量数据集,用于存储更新分析返回的结果
            String resultDatasetUpdateName = targetDatasource.getDatasets().
                                             getAvailableDatasetName(
                    "resultDatasetUpdate");
            DatasetVectorInfo datasetvectorInfoUpdate = new DatasetVectorInfo();
            datasetvectorInfoUpdate.setType(DatasetType.REGION);
            datasetvectorInfoUpdate.setName(resultDatasetUpdateName);
            datasetvectorInfoUpdate.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetUpdate = targetDatasource.getDatasets().
                                                create(datasetvectorInfoUpdate);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamUpdate = new
                    OverlayAnalystParameter();
            overlayAnalystParamUpdate.setTolerance(0.0000013678);
    
            // 调用更新叠加分析方法实更新分析
            OverlayAnalyst.update(queryResultUpdated, queryResultUpdate,
                                  resultDatasetUpdate, overlayAnalystParamUpdate);
    
            // 释放工作空间占有的资源
            workspace.dispose();
        }
  • update

    public static boolean update(Recordset recordset,
                                 Recordset updateRecordset,
                                 DatasetVector resultDataset,
                                 OverlayAnalystParameter parameter,
                                 SteppedListener... listeners)
    用于对两个面记录集进行更新方式的叠加分析,更新运算是用于更新的记录集替换它与被更新记录集的重合部分,是一个先擦除后粘贴的过程。

    有关更新运算的详细介绍,请参见另一重载方法 update 的介绍。

    注意,用于更新叠加分析的记录集、被更新叠加分析的记录集以及结果数据集的地理坐标系必须一致。

    参数:
    recordset - 被更新叠加分析的记录集,必须是面。
    updateRecordset - 用于更新叠加分析的记录集,必须是面。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    listeners - 用于接收进度条事件的监听器。
    返回:
    分析成功返回值为 true,失败返回值为 false。
    示范代码:
    以下代码示范了对两个面记录集进行更新方式的叠加分析。
       public void overlayAnalystUpdate2() {
            // 返回被更新的记录集与用于更新的记录集
            Workspace workspace = new Workspace();
            DatasourceConnectionInfo datasourceConnectionInfo = new
                    DatasourceConnectionInfo(
                    "G:/SampleData/changchun/changchun.udb", "changchun", "");
            Datasource targetDatasource = workspace.getDatasources().open(
                    datasourceConnectionInfo);
    
            DatasetVector datasetUpdated = (DatasetVector) targetDatasource.
                                           getDatasets().get("Frame_R");
            Recordset queryResultUpdated = datasetUpdated.getRecordset(false,
                    CursorType.DYNAMIC);
    
            DatasetVector datasetUpdate = (DatasetVector) targetDatasource.
                                          getDatasets().get("ResidentialArea");
            QueryParameter queryParamUpdate = new QueryParameter();
            queryParamUpdate.setAttributeFilter("ClassID = 32023");
            queryParamUpdate.setHasGeometry(true);
            Recordset queryResultUpdate = datasetUpdate.query(queryParamUpdate);
    
            // 创建一个面矢量数据集,用于存储更新分析返回的结果
            String resultDatasetUpdateName = targetDatasource.getDatasets().
                                             getAvailableDatasetName(
                    "resultDatasetUpdate");
            DatasetVectorInfo datasetvectorInfoUpdate = new DatasetVectorInfo();
            datasetvectorInfoUpdate.setType(DatasetType.REGION);
            datasetvectorInfoUpdate.setName(resultDatasetUpdateName);
            datasetvectorInfoUpdate.setEncodeType(EncodeType.NONE);
            DatasetVector resultDatasetUpdate = targetDatasource.getDatasets().
                                                create(datasetvectorInfoUpdate);
    
            // 设置叠加分析参数
            OverlayAnalystParameter overlayAnalystParamUpdate = new
                    OverlayAnalystParameter();
            overlayAnalystParamUpdate.setTolerance(0.0000013678);
    
            // 调用更新叠加分析方法实更新分析
            OverlayAnalyst.update(queryResultUpdated, queryResultUpdate,
                                  resultDatasetUpdate, overlayAnalystParamUpdate);
    
            // 释放工作空间占有的资源
            workspace.dispose();
        }
  • update

    @Deprecated
    public static boolean update(DatasetVector dataset,
                                              Geometry[] updateGeometries,
                                              DatasetVector resultDataset,
                                              OverlayAnalystParameter parameter)
    已过时。 此方法已废弃,请使用支持进度监听的新方法 OverlayAnalyst.update(DatasetVector, Geometry[], DatasetVector, OverlayAnalystParameter, SteppedListener...) 替换。
    对面数据集用面对象数组进行更新方式的叠加分析, 更新运算是用用于更新的面对象数组替换与被更新数据集的重合部分,是一个先擦除后粘贴的过程。

    有关更新运算的详细介绍,请参见另一重载方法 update 的介绍。

    注意,用于更新叠加分析的面对象数组、被更新叠加分析的数据集以及结果数据集的地理坐标系必须一致。

    参数:
    dataset - 被更新叠加分析的数据集,必须是面数据集。
    updateGeometries - 用于更新叠加分析的面对象数组。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    返回:
    分析成功返回 true,失败返回 false。
  • update

    public static boolean update(DatasetVector dataset,
                                 Geometry[] updateGeometries,
                                 DatasetVector resultDataset,
                                 OverlayAnalystParameter parameter,
                                 SteppedListener... listeners)
    对面数据集用面对象数组进行更新方式的叠加分析, 更新运算是用用于更新的面对象数组替换与被更新数据集的重合部分,是一个先擦除后粘贴的过程。

    有关更新运算的详细介绍,请参见另一重载方法 update 的介绍。

    注意,用于更新叠加分析的面对象数组、被更新叠加分析的数据集以及结果数据集的地理坐标系必须一致。

    参数:
    dataset - 被更新叠加分析的数据集,必须是面数据集。
    updateGeometries - 用于更新叠加分析的面对象数组。
    resultDataset - 存放分析结果的数据集。
    parameter - 叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
    listeners - 用于接收进度条事件的监听器。
    返回:
    分析成功返回 true,失败返回 false。
  • update

    public static OverlayResult[] update(Geometry[] updateSourceGeometries,
                                         Geometry[] updateTargetGeometries,
                                         double tolerance)
    对源几何对象数组用目标几何对象数组进行更新方式的叠加分析, 更新运算是用用于更新的目标几何对象数组替换与被更新源几何对象数组的重合部分,是一个先擦除后粘贴的过程。

    有关更新运算的详细介绍,请参见另一重载方法 update 的介绍。

    参数:
    updateSourceGeometries - 被更新叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    updateTargetGeometries - 用于更新叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
    返回:
    叠加分析结果数组,如果成功返回 数组,否则返回 null。
  • update

    public static OverlayResult[] update(Geometry[] updateSourceGeometries,
                                         Geometry[] updateTargetGeometries,
                                         double tolerance,
                                         boolean isSupportOverlapInLayer)
    对源几何对象数组用目标几何对象数组进行更新方式的叠加分析, 更新运算是用用于更新的目标几何对象数组替换与被更新源几何对象数组的重合部分,是一个先擦除后粘贴的过程。可以支持面数据集内出现重叠面的情形。

    有关更新运算的详细介绍,请参见另一重载方法 update 的介绍。

    参数:
    updateSourceGeometries - 被更新叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    updateTargetGeometries - 用于更新叠加分析的几何对象数组,该数组中的几何对象必须是面几何对象。
    tolerance - 节点容限。建议根据数据精度设置节点容限,容限值应大于数据精度。
    isSupportOverlapInLayer - 是否支持面数据集内含有重叠面的情形。
    返回:
    叠加分析结果数组,如果成功返回 数组,否则返回 null。
  • addSteppedListener

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

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

Copyright © 2021–2024 SuperMap. All rights reserved.