在各种WorkSpace中判断要打开的文件(如:栅格,要素)是否存在

用IWorkspace2.NameExists可以判断工作空间是否存在指定名称和类型的数据集..

 

引用MSDN的例子,获得工作空间的文件名字,历遍:

//IWorkspace DatasetNames Example
    public void IWorkspace_DatasetNames_Example(IWorkspace workspace)    
{        
//This function asks the workspace for its feature dataset names.        
//The names are returned as an enumeration which is cycled through and the         
//name of each dataset is printed.        
IEnumDatasetName enumDatasetName = workspace.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);
IDatasetName datasetName = enumDatasetName.Next();
 while (datasetName != null)        
{            
    Console.WriteLine(datasetName.Name);            
    datasetName = enumDatasetName.Next();        
}    
}
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#判断一个点是否在某个要素文件,可以使用ArcObjects来完成。下面是一个基本的示例代码: ```csharp using ESRI.ArcGIS.ADF; using ESRI.ArcGIS.ADF.Connection.Local; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.Geometry; // 要素文件路径 string filePath = @"C:\Temp\sample.shp"; // 创建工作空间 IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactory(); IWorkspace workspace = workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(filePath), 0); // 获取要素类 IFeatureWorkspace featureWorkspace = workspace as IFeatureWorkspace; IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(System.IO.Path.GetFileNameWithoutExtension(filePath)); // 创建查询过滤器 ISpatialFilter spatialFilter = new SpatialFilterClass(); spatialFilter.Geometry = point; // point是待判断的点 spatialFilter.GeometryField = featureClass.ShapeFieldName; spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains; // 进行查询 IFeatureCursor featureCursor = featureClass.Search(spatialFilter, false); IFeature feature = featureCursor.NextFeature(); // 判断结果 if (feature != null) { Console.WriteLine("该点在要素"); } else { Console.WriteLine("该点不在要素"); } ``` 首先,需要通过工作空间工厂创建一个工作空间,然后再通过工作空间获取要素类。接着,创建一个空间过滤器,设置查询的几何对象和关联的字段,以及查询空间关系。最后,使用要素类的Search方法执行查询,如果返回的Feature对象不为空,则表示该点在要素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值