用于对数据集进行同一方式的叠加分析,结果数据集中保留被同一运算的数据集的全部对象和被同一运算的数据集与用来进行同一运算的数据集相交的对象。
命名空间:
SuperMap.Analyst.SpatialAnalyst程序集: SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll
语法
C# |
---|
public static bool Identity( DatasetVector dataset, DatasetVector identityDataset, DatasetVector resultDataset, OverlayAnalystParameter parameter ) |
参数
- dataset
- Type: SuperMap.Data..::.DatasetVector
被同一运算的数据集,可以是点、线、面类型。
- identityDataset
- Type: SuperMap.Data..::.DatasetVector
用来进行同一运算的数据集,必须为面类型。
- resultDataset
- Type: SuperMap.Data..::.DatasetVector
存放分析结果的数据集。
- parameter
- Type: SuperMap.Analyst.SpatialAnalyst..::.OverlayAnalystParameter
叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。
返回值
一个布尔值,如果成功返回 true,否则返回 false。备注
1、同一运算就是第一数据集与第二数据集先求交,然后求交结果再与第一数据集求并的一个运算。其中,第二数据集的类型必须是面,第一数据集的类型可以是点、线、面数据集。如果第一个数据集为点数集,则新生成的数据集中保留第一个数据集的所有对象;如果第一个数据集为线数据集,则新生成的数据集中保留第一个数据集的所有对象,但是把与第二个数据集相交的对象在相交的地方打断;如果第一个数据集为面数据集,则结果数据集保留以第一数据集为控制边界之内的所有多边形,并且把与第二个数据集相交的对象在相交的地方分割成多个对象。
2、用于进行同一运算的数据集、被同一运算的数据集以及结果数据集的地理坐标系必须一致。
3、Identiy 运算与 Union 运算有相似之处,所不同之处在于 Union 运算保留了两个数据集的所有部分,而 Identity 运算是把第一个数据集中与第二个数据集不相交的部分进行保留。Identity 运算的结果属性表来自于两个数据集的属性表。
示例
以下代码示范了根据给定的被操作的面数据集、用于操作的面数据集和目标数据源进行同一方式的叠加分析。
CopyC#
public void OverlayAnalystIdentity(DatasetVector datasetOperated, DatasetVector datasetOperate, Datasource targetDatasource) { //创建一个面矢量数据集,用于存储同一运算获得的结果 String resultDatasetIdentityName = targetDatasource.Datasets.GetAvailableDatasetName("resultDatasetIdentity"); DatasetVectorInfo datasetvectorInfoIdentity = new DatasetVectorInfo(); datasetvectorInfoIdentity.Type = DatasetType.Region; datasetvectorInfoIdentity.Name = resultDatasetIdentityName; datasetvectorInfoIdentity.EncodeType = EncodeType.None; DatasetVector resultDatasetIdentity = targetDatasource.Datasets.Create(datasetvectorInfoIdentity); //设置叠加分析参数 OverlayAnalystParameter overlayAnalystParamIdentity = new OverlayAnalystParameter(); overlayAnalystParamIdentity.Tolerance = 0.0089078724; //调用同一运算方法实同一运算 OverlayAnalyst.Identity(datasetOperated, datasetOperate, resultDatasetIdentity, overlayAnalystParamIdentity); }