C#arcengine新建图层
时间: 2023-07-12 11:13:18 浏览: 178
你可以使用 ArcObjects 中的 IMap 和 IFeatureLayer 接口来新建图层。下面是一个示例代码:
```csharp
// 获取当前地图
IMap map = ArcMap.Document.FocusMap;
// 创建一个要素工厂
IFeatureFactory featureFactory = new FeatureFactoryClass();
// 创建一个要素集合
IFeatureClass featureClass = featureFactory.CreateFeatureClass("FeatureClass", null, null, null, esriFeatureType.esriFTSimple, "Shape", "");
// 创建一个要素图层
IFeatureLayer featureLayer = new FeatureLayerClass();
featureLayer.FeatureClass = featureClass;
featureLayer.Name = "FeatureLayer";
// 将新图层添加到地图中
map.AddLayer(featureLayer);
```
以上代码会创建一个名为 "FeatureLayer" 的新图层,并将其添加到当前地图中。你可以根据需要修改代码中的参数来创建不同类型的图层。
相关问题
C#arcengine新建空图层
你可以使用 ArcObjects 中的 IFeatureClass 接口来创建一个新的空图层,以下是一个示例代码:
```csharp
// 获取要素工厂
IFeatureClass featureClass = null;
IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactory();
IWorkspace workspace = workspaceFactory.OpenFromFile(@"C:\Temp", 0);
IFeatureWorkspace featureWorkspace = workspace as IFeatureWorkspace;
UID featureClassUID = new UIDClass();
featureClassUID.Value = "esriGeoDatabase.Feature";
// 创建一个新的要素类
featureClass = featureWorkspace.CreateFeatureClass("NewFeatureClass", new Fields(), featureClassUID, null, esriFeatureType.esriFTSimple, "Shape", "");
// 释放资源
System.Runtime.InteropServices.Marshal.ReleaseComObject(featureClass);
System.Runtime.InteropServices.Marshal.ReleaseComObject(featureWorkspace);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workspace);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workspaceFactory);
```
在上面的代码中,我们首先创建了一个 ShapefileWorkspaceFactory 对象,并使用其 OpenFromFile 方法打开一个文件夹作为工作空间。然后我们将工作空间转换为特征工作空间(IFeatureWorkspace),并使用 CreateFeatureClass 方法创建一个名为“NewFeatureClass”的要素类。在这里,我们传递了一个空的字段集合和一个 UID 对象来指定要素类的类型。最后,我们释放了所有使用的 COM 对象。
C#arcengine新建一个图层
在 C# ArcEngine 中,新建一个图层的步骤如下:
1. 创建一个要素集合对象,例如:
```IFeatureClass featureClass = new FeatureClass();```
2. 创建一个要素集合描述对象,例如:
```IFeatureClassDescription fcDesc = new FeatureClassDescription();```
3. 创建一个字段集合对象,例如:
```IFields fields = new Fields();```
4. 创建一个字段对象,例如:
```IField field = new Field();```
5. 设置字段的属性,例如:
```field.Name_2 = "FieldName";```
```field.Type_2 = esriFieldType.esriFieldTypeString;```
6. 将字段添加到字段集合中,例如:
```fields.AddField(field);```
7. 创建一个要素集合对象,例如:
```IFeatureClass featureClass = new FeatureClass();```
8. 设置要素集合的属性,例如:
```featureClass.FeatureType = esriFeatureType.esriFTSimple;```
```featureClass.ShapeType = esriGeometryType.esriGeometryPoint;```
9. 使用要素集合描述对象创建要素集合,例如:
```fcDesc.CreateFeatureClass("FeatureClassName", fields, null, null, esriFeatureType.esriFTSimple, "Shape", "");```
10. 添加要素集合到地图中,例如:
```IMap map = axMapControl1.Map;```
```map.AddLayer(featureClass as ILayer);```
以上是新建一个简单要素集合的步骤,如果需要创建其他类型的要素集合,可以根据需要修改属性。
阅读全文