Arcgis Engine二次开发实验报告 下载本文

//判断要素类、图层名和地图对象是否为空,为空返回false

if (featureClass == null || sLayerName == \ || m_map == null) { returnfalse; }

//通过接口创建要素图层对象,将要素类以层的形式进行操作 IFeatureLayerfeatureLayer = newFeatureLayerClass(); featureLayer.FeatureClass = featureClass; featureLayer.Name = sLayerName;

//将要素图层转换为一般图层,并判断是否成功 ILayer layer = featureLayerasILayer; if (layer == null) { returnfalse; }

//将创建好的图层添加至地图对象,将地图对象转化为活动视图,并判断是否成功 m_map.AddLayer(layer);

IActiveViewactiveView = m_mapasIActiveView; if (activeView == null) { returnfalse; }

//活动视图进行刷新,新添加的图层将被展开在控件中 activeView.Refresh(); returntrue; }

3. 实现创建shape文件

//创建文件菜单项点击函数

privatevoidmiCreateShapefile_Click(object sender, EventArgs e) {

//创建文件,将其以要素类形式获取,判断是否成功

DataOperatordataOperator = newDataOperator(axMapControl1.Map); IFeatureClassfeatureClass = dataOperator.CreateShapefile(\, \, \); if (featureClass == null) {

MessageBox.Show(\创建Shape文件失败!\); return;

}

//将要素类添加到地图中,设置图层名为\,记录结果 boolbRes = dataOperator.AddFeatureClassToMap(featureClass, \Stations\); if (bRes)

{

miCreateShapefile.Enabled = false; return;

} else

{

MessageBox.Show(\将新建Shape文件加入地图失败!\); return;

} }

4.运行结果

添加要素实验主要包以下部分:

1. 添加主窗体控件:创建数据操作菜单项的下拉菜单项“添加要素” 2. 添加类成员函数:在数据操作类中添加“添加要素至图层”函数

3. 添加事件响应函数:包括两个,添加要素菜单项的点击事件响应函数和鼠标按下事件响应函数 流程图如下:

添加主窗体控件添加类成员函数添加事件响应函数运行,创建文件,点击添加要素鼠标在地图中按下,创建点要素

关键代码:

1. 添加“新增要素”函数

//添加要素函数

publicboolAddFeatureToLayer(StringsLayerName, StringsFeatureName, IPoint point) {

//判断图层名、要素名、要素坐标和地图对象是否为空

if (sLayerName == \ || sFeatureName == \ || point == null || m_map == null) { returnfalse; }

//对地图对象中的图层进行遍历,寻找指定图层 ILayer layer = null;

for (inti = 0; i

layer = m_map.get_Layer(i); if (layer.Name == sLayerName) { break;

} layer = null; }

//判断图层是否获取成功 if (layer == null) { returnfalse; }

//通过接口访问访问获取到的图层,并进一步获取其要素类 IFeatureLayerfeatureLayer = layer asIFeatureLayer;