用ArcEngine的工具条添加图层要素
2013-04-15 13:29
381 查看
用ArcEngine的工具条添加图层要素
2008-03-25 01:43:41| 分类: 专业之AO|字号 订阅private void Form1_Load(object sender, System.EventArgs e)
{
//清空图层
this.axMapControl1.Map.ClearLayers();
//加载服务器SDE地图信息
ESRI.ArcGIS.esriSystem.IPropertySet Proset = new ESRI.ArcGIS.esriSystem.PropertySetClass();//属性集
ESRI.ArcGIS.Geodatabase.IWorkspaceFactory Fact;//工作空间仓库
ESRI.ArcGIS.Geodatabase.IWorkspace Workspace;//工作空间
Proset.SetProperty("Server","服务器名");//服务器名
Proset.SetProperty("Instance","端口");//实例化端口
Proset.SetProperty("user","用户名");//SDE用户名
Proset.SetProperty("password","密码");//密码
Proset.SetProperty("version","sde.DEFAULT");//连接版本
Fact = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass();//实例化为SDE工作空间仓库
Workspace = Fact.Open(Proset,Int32.Parse(this.Handle.ToString()));//填入属性集
ESRI.ArcGIS.Geodatabase.IFeatureWorkspace FeatureWorkspace;
FeatureWorkspace = Workspace as ESRI.ArcGIS.Geodatabase.IFeatureWorkspace;//传递给Feature工作空间
ESRI.ArcGIS.Geodatabase.IFeatureClass FeatureClass;
FeatureClass = FeatureWorkspace.OpenFeatureClass("SDE.BBBB");//填充所需Feature集合
ESRI.ArcGIS.Carto.FeatureLayer FLayer = new ESRI.ArcGIS.Carto.FeatureLayerClass();
FLayer.FeatureClass = FeatureClass;//将Feature加载到图层
axMapControl1.Map.AddLayer(FLayer);//加载图层
axMapControl1.Update();//更新空白区域
axMapControl1.Refresh();//刷新地图视窗
}
private void Form1_Closed(object sender, System.EventArgs e)
{
ESRI.ArcGIS.esriSystem.IAoInitialize aoi = new ESRI.ArcGIS.esriSystem.AoInitializeClass();
aoi.Shutdown();
}
private void button1_Click(object sender, System.EventArgs e)
{
IGraphicsContainerSelect GraphicsContainerSelect = (IGraphicsContainerSelect)axMapControl1.Map;
if(GraphicsContainerSelect.ElementSelectionCount ==0)//判断是否选中图斑
{
MessageBox.Show("请选中欲导入图斑!");
return;
}
IWorkspaceEdit WorkspaceEdit;
IFeatureLayer FeatureLayer;
IFeatureClass FeatureClass;
IFeature Feature;
IDataset Dataset;
FeatureLayer = (IFeatureLayer)this.axMapControl1.get_Layer(0);//选中导入图层
FeatureClass = FeatureLayer.FeatureClass;//该图层的feature集
Dataset = (IDataset)FeatureClass;//该图层的数据集
WorkspaceEdit = (IWorkspaceEdit)Dataset.Workspace;//关联到编辑空间
WorkspaceEdit.StartEditing(true);//使之可编辑
WorkspaceEdit.StartEditOperation();//开始编辑
Feature = FeatureClass.CreateFeature();//创建空feature
Feature.Shape = GraphicsContainerSelect.SelectedElement(0).Geometry;//仅导入最新选中图斑,即多选时只有一个可以导入
Feature.Store();
WorkspaceEdit.StopEditOperation();
WorkspaceEdit.StopEditing(true);//结束编辑并保存
IGraphicsContainer GraphicsContainer = (IGraphicsContainer)GraphicsContainerSelect;
GraphicsContainer.DeleteAllElements();//删除graphic图层
axMapControl1.ActiveView.Refresh();//刷新当前视图
MessageBox.Show("ok");
}
相关文章推荐
- 用ArcEngine的工具条添加图层要素
- [转]用ArcEngine的工具条添加图层要素
- ArcEngine_CAD(3)从CAD文件中添加单一图层
- ArcEngine二次开发_03(鼠标在图层中选择要素进行高亮显示)
- ArcEngine_CAD(4)添加所有图层
- 图层中批量添加点要素
- ARCEngine 添加创建线要素
- ArcEngine根据选择的要素判断其所属图层
- 如何判断添加的一个面要素是否与某一个面图层相交(AO)
- arcengine C#关于动态添加图层
- ArcEngine 设置要素图层的基准高(Base Height),使其紧贴地形TIN
- 【225】ArcEngine 实现要素添加 & 删除
- QGis C++ 开发之创建临时图层并添加要素
- 向已有的要素图层中添加新要素(点、线)
- ArcEngine查询、添加、删除要素的方法
- ArcEngine中设置添加图层的图例显示为水平一行的样式的方法
- ArcEngine c# 创建shp图层,并将要素写入图层保存
- ArcEngine添加图层时,内存释放问题备注
- ArcGIS添加图层到指定的索引思路:
- ArcEngine二次开发_02(鼠标移过图层中显示特定的属性信息)