//组合框的“选择索引更改”事件响应函数,用于在改变组合框所选项时地图范围变为其对应书签所保存的范围
private void cbBookmarkList_SelectedInexChanged(object sender, EventArgs e) {
//访问地图所包含的书签,并获取书签序列
IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks;
//对地图所包含的书签进行遍历,获取与组合框所选项名称相符的书签 enumSpatialBookmark.Reset();
ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) {
if (cbBookmarkList.SelectedItem.ToString() == spatialBookmark.Name) {
spatialBookmark.ZoomTo((IMap)axMapControl1.ActiveView); axMapControl1.ActiveView.Refresh(); break; }
spatialBookmark = enumSpatialBookmark.Next(); } 6.实验结果如下
4
2 实验二:地图数据组织与访问
2.1 实验目的
? 了解ArcGIS Engine中地图数据的组织结构 ? 掌握ArcGIS Engine地图数据访问方法
2.2 实验内容
? 编写“数据操作”类
? 利用DataGridView控件展示Continents图层的序号和名称字段
2.3 实验步骤与结果
1.添加“空间数据”菜单项,在下拉菜单中添加一个菜单项文本为“访问图层数据”名称为“miAccessData”,用于稍后调用“数据展示台”窗体。
2.新建窗体类,窗体文件命名为“DataBoard.cs”文本属性为“数据展示台”。添加一个文本框,控件名为“tbDataName”,一个数据网格视图,控件名为“dataGridView1”,ReadOnly=true。 如图所示
3.在当前窗体代码中加入以下代码
public DataBoard(String sDataName, DataTable dataTable) {
//初始化窗体及控件
5
InitializeComponent();
//设置文本框中的文本和数据网格视图的数据源 tbDataName.Text = sDataName;
dataGridView1.DataSource = dataTable; }
4.添加类,命名为“Data