GIS二次开发(B)实验报告

GIS二次开发(B)实验报告二〇一五年11月3日目录1 实验一:AOI书签开发 (1)1.1 实验目的 (1)1.2 实验内容 (1)1.3 实验步骤与结果 (1)2 实验二:地图数据组织与访问 (8)2.1 实验目的 (8)2.2 实验内容 (8)2.3 实验步骤与结果 (8)3 实验三:地图渲染与制图输出 (16)3.1 实验目的 (16)3.2 实验内容 (16)3.3 实验步骤结果 (16)4 实验总结 (23)1实验一:AOI书签开发1.1实验目的✧掌握AOI书签程序开发1.2实验内容✧实现AOI书签的创建✧实现AOI书签的调用1.3实验步骤与结果public void createbookmark(string sbookmarkname)//参数为书签名{//通过iaolbookmark接口创建一个变量,其类型为aoibookmark,保存当前地图范围。

IAOIBookmark aoibookmark = new AOIBookmarkClass();if (aoibookmark!= null){aoibookmark.Location = axMapControl1.ActiveView.Extent; = sbookmarkname;}//通过imapbookmarks接口访问当前地图,并向地图中加入新建书签IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;if (bookmarks!= null){bookmarks.AddBookmark(aoibookmark);}cbbookmarklist.Items.Add();}}}namespace xy{public partial class AdmitBookmarkName : Form{public MainForm m_frmMain;public AdmitBookmarkName(){InitializeComponent();}public AdmitBookmarkName(MainForm frm){InitializeComponent();if (frm != null){m_frmMain = frm;}}//“确认”按钮的“点击”事件响应函数,用于创建书签private void btnAdmit_Click(object sender, EventArgs e){if (m_frmMain != null && tbBookmarkName.Text == ""){m_frmMain.createbookmark(tbBookmarkName.Text);}this.Close();}}}2实验二:地图数据组织与访问2.1实验目的✧了解ArcGIS Engine中地图数据的组织结构✧掌握ArcGIS Engine地图数据访问方法2.2实验内容✧编写“数据操作”类✧利用DataGridView控件展示Continents图层的序号和名称字段2.3实验步骤与结果初始化窗口using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace MapControlApplication1{public partial class Databoard : Form{public Databoard(){InitializeComponent();}public Databoard(string sDataName, DataTable dataTable){//初始化窗体及控件。

InitializeComponent();//设置文本框中的文本和数据网格视图的数据源。

tbDataName.Text = sDataName;dataGridView1.DataSource = dataTable;}private void Databoard_Load(object sender, EventArgs e){}private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e){}}}引用一个各种类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesFile;namespace MapControlApplication1{class DataOperator{//保存当前地图对象public IMap m_map;//用于传入当前地图对象public DataOperator(IMap map){m_map = map;}public ILayer GetLaybyName (string sLayerName){//判断图层名或地图对象是否为空。

若为空,函数返回空。

if (sLayerName ==""&&m_map==null){return null;}//对地图对象中的所有图层进行遍历。

若某一图层的名称与指定图层名相同,则返//回图层。

for (int i = 0; i < m_yerCount; i++){if (m_map.get_Layer(i).Name == sLayerName){return m_map.get_Layer(i);}}//若地图对象中的所有图层名均与指定图层名不匹配,函数返回值为空。

return null;}public DataTable GetContinentsNames(){//获取Continents图层,利用IFeatureLayer接口访问,并判断是否成功,若失败函数返回空ILayer layer = GetLaybyName("Continents");IFeatureLayer featureLayer = layer as IFeatureLayer;if (featureLayer == null){return null;}//调用IFeatureLayer接口的seach方法,获取是否成功获取第一个要素。

若失败,函数返回空。

IFeature feature;IFeatureCursor featureCursor = featureLayer.Search(null, false);feature = featureCursor.NextFeature();if (feature == null){return null;}//新建DataTable类型对象,用于函数返回。

DataTable dataTable = new DataTable();//新建DataColumn类型对象,分别保存各个州的序号的名称。

设置完毕后,加入datatable的列集合DataColumn dataColumn = new DataColumn();dataColumn.ColumnName = "序号";dataColumn.DataType=System.Type.GetType("System.Int32");dataTable.Columns.Add(dataColumn);dataColumn=new DataColumn();dataColumn.ColumnName="名称";dataColumn.DataType=System.Type.GetType("System.String");dataTable.Columns.Add(dataColumn);//对图层中的要素进行遍历。

每获取一个要素,就关联datatable的下一个datarow,DataRow dataRow;while (feature != null){dataRow = dataTable.NewRow();dataRow[0] = feature.get_Value(0);dataRow[1] = feature.get_Value(2);dataTable.Rows.Add(dataRow);feature = featureCursor.NextFeature();}//返回设置好的数据表。

return dataTable;}}}在主窗体中加入代码,并运行private void miAccessData_Click(object sender, EventArgs e){DataOperator dataOperator = newDataOperator(axMapControl1.Map);Databoard dataBord = new Databoard("各大洲名", dataOperator.GetContinentsNames());//运行载有数据的“数据展示台”窗体对象。

dataBord.Show();}3实验三:地图渲染与制图输出3.1实验目的✧了解地图符号的分类与可视化过程✧掌握地图符号的渲染方法3.2实验内容✧编写“地图编制”类,添加成员函数✧实现获取地图渲染器信息功能✧实现地图的简单符号渲染3.3实验步骤结果C# Codeprivate void 简单渲染图层ToolStripMenuItem1_Click(object sender, EventArgs e){dataoperator dataOperator = new dataoperator(axMapControl1.Map); ILayer layer = dataOperator.getlayerbyname("World Cities");IRgbColor rgbColor = new RgbColorClass();rgbColor.Blue = 0;rgbColor.Red = 255;rgbColor.Green = 0;IColor color = rgbColor as IColor;ISymbol symbol = MapComposer.getsymbolfromlayer(layer);bool res = MapComposer.RenderSimply(layer, color);if(res){axMapControl1.ActiveView.ContentsChanged();axMapControl1.ActiveView.Refresh();简单渲染图层ToolStripMenuItem.Enabled = false;}else{MessageBox.Show("简单渲染图层失败");}}主窗体新建渲染图层菜单,并新建子菜单新建MapComposer类并输入以下代码C# Codeusing System;using System.Collections.Generic;using System.Linq;using System.Text;using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.ADF;using ESRI.ArcGIS.SystemUI;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Display;using ESRI.ArcGIS.Geodatabase;namespace MapControlApplication1{class MapComposer{public static string getrendertypebylayer(ILayer layer) {if(layer == null)return "获取失败";IFeatureLayer ftly = (IFeatureLayer)layer;IGeoFeatureLayer gftly = (IGeoFeatureLayer)layer; IFeatureRenderer ftren = gftly.Renderer;if(ftren is ISimpleRenderer)return "ISimpleRenderer";else if(ftren is IUniqueValueRenderer)return "IUniqueValueRenderer";else if(ftren is IDotDensityRenderer)return "IDotDensityRenderer";else if(ftren is IChartRenderer)return "IChartRenderer";else if(ftren is IProportionalSymbolRenderer)return "IProportionalSymbolRenderer";return "未知或者获取渲染器失败";}public static ISymbol getsymbolfromlayer(ILayer layer) {if(layer == null)return null;IFeatureLayer ftly = (IFeatureLayer)layer;IFeatureCursor ftcs = ftly.Search(null, false);IFeature ft = ftcs.NextFeature();if(ft == null)return null;IGeoFeatureLayer gftly = ftly as IGeoFeatureLayer; IFeatureRenderer ftren = gftly.Renderer;if(ftren == null)return null;ISymbol syb = ftren.get_SymbolByFeature(ft);return syb;}public static bool RenderSimply(ILayer layer, IColor color){if(layer == null || color == null)return false;ISymbol symbol = getsymbolfromlayer(layer);if(symbol == null)return false;IFeatureLayer featureLayer = layer as IFeatureLayer;IFeatureClass featureClass = featureLayer.FeatureClass;if(featureClass == null)return false;esriGeometryType geoType = featureClass.ShapeType;switch(geoType){case esriGeometryType.esriGeometryPoint:{IMarkerSymbol markerSymbol = symbol as IMarkerSymbol; markerSymbol.Color = color;break;}case esriGeometryType.esriGeometryMultipoint:{IMarkerSymbol markerSymbol = symbol as IMarkerSymbol; break;}case esriGeometryType.esriGeometryPolyline:{ISimpleLineSymbol simpleLineSymbol =symbol as ISimpleLineSymbol;simpleLineSymbol.Color = color;break;}case esriGeometryType.esriGeometryPolygon:{IFillSymbol fillSymbol = symbol as IFillSymbol;fillSymbol.Color = color;break;}default:return false;}ISimpleRenderer simpleRenderer = new SimpleRendererClass(); simpleRenderer.Symbol = symbol;IFeatureRenderer featureRenderer =simpleRenderer as IFeatureRenderer;if(featureRenderer == null)return false;IGeoFeatureLayer geoFeatureLayer =featureLayer as IGeoFeatureLayer;geoFeatureLayer.Renderer = featureRenderer;return true;}}}●运行“获取渲染器信息”●运行“简单渲染器渲染”4实验总结通过这次实习,我学到了很多知识,那是在课堂上无法学到的东西。

合集下载

《GIS开发技术B》实验报告模板

《GIS开发技术B》实验报告模板

GIS 开发技术B
实验报告
成绩:
姓名:
学号:
班级:
题目:
成都信息工程大学
《GIS开发技术B》实验报告
(报告正文请用小四号宋体书写,行间距1.25—1.5倍行间距之间,打印实验报告前请把这段红色文字删除)
一、实验目的
二、实验准备
2.1软件准备
2.2数据准备
三、实验内容及步骤
四、实验中的关键代码
(这部分要写出实验中的关键核心代码。

打印实验报告前请把这段红色文字删除)
五、实验结果
5.1实验中遇到的困难及解决方法
5.2心得体会
注:题目必须按照如下写,比如:
实验一基于ArcGIS Engine的程序设计入门
实验二地图显示和图层控制
实验三地图的组成及相关对象。

GIS二次开发(B)实验报告

GIS二次开发(B)实验报告

GIS二次开发(B)实验报告学号:姓名:班级:专业:指导老师:2014年11月22日目录1 实验一:软件安装与AOI书签开发 (1)1.1 实验目的 (1)1.2 实验内容 (1)1.3 实验结果 (1)2 实验二:地图数据组织与访问 (5)2.1 实验目的 (5)2.2 实验内容 (5)2.3 实验结果 (5)3 实验三:地图渲染与制图输出 (9)3.1 实验目的 (9)3.2 实验内容 (9)3.3 实验结果 (9)4 实验四:空间数据处理 (16)4.1 实验目的 (16)4.2 实验内容 (16)4.3 实验结果 (16)5 实验总结 (20)1实验一:软件安装与AOI书签开发1.1实验目的✧掌握ArcGIS Engine开发环境的相关软件安装✧掌握AOI书签程序开发1.2实验内容✧安装Visual Studio 2010✧安装Microsoft .NET Framework 3.5✧安装ArcGIS Engine 10.1✧安装ArcObjects Developer kit For Microsoft .NET Framework 10.1 ✧安装ArcGIS License Manager,并授权✧实现AOI书签的创建✧实现AOI书签的调用1.3实验步骤与结果1).添加控件和类库引用在程序主窗体添加一个菜单项(MenuItem),改名字Name改成MiCreateBooke。

在创建组合框。

2).添加“创建书签”函数Public void CreateBookmark(string sBookmarkName){IAOIBookmark aioBookmark=new AOIIBookmarkClass();If(aoiBokkmark!=null){aoiBook.location=axMapControll.ActieView.Extent;=sBookmarkName;}IMapBookmarks bookmarks=axMapControll.Map as TMapBookmarks; If(bookmarks!=null){Bookmarks.AddBookmark(aoiBookmark)}cb—BookmarkList.Items.Ad();}3).添加“书签名称设置”窗体4).实现创建书签与调用书签功能在主窗体的创建书签中编写函数代码。

GIS二次开发程序设计

GIS二次开发程序设计

成绩批阅日期重庆交通大学测量与空间信息处理实验报告实验课程:GIS二次开发程序设计实验名称: GIS二次开发班级:学号:姓名:实验日期: 2012 年 6 月 25 日实验一界面设计一、实验目的和要求1、学会对MO进行安装。

2、熟悉Visual Basic和Map Object程序的基本操作。

3、掌握toolbar的操作步骤。

4、设置GIS二次开发的界面,要求界面具有菜单、工具条及设计程序时用到的各种控件等。

二、实验内容1、利用Visual Basic相应控件和操作以及Map Object完成界面设计,运用所安装的MO的控件进行所需界面设计。

2、在设计的界面上一次添加菜单、工具条、图例控件、map控件、状态栏等,并熟练掌握其操作步骤。

三、实验步骤1、在有MO和VB的环境中进行所设计的界面设计。

1)菜单的设计。

要求具有一些常用的功能。

如下图所示:2、对toolbar进行设计。

在菜单栏下面进行插入Button按钮,并在按钮上插入相应图像。

步骤如下图:3、插入map、legend、status等控件,并调整其大小。

得到最后成果图如下图所示:四、实验总结4.1、实验中遇到的困难在进行界面设计时,会遇到一些意想不到的困难,比如在插入toolbar 中的Button时,如果没有加入imagelist控件时,就不能在Button上插入图像。

还有在进行菜单操作时,有时会因为空格运行不当,而不能得到理想的下拉菜单。

4.2、处理方法和技巧在进行设计时,一定要记住操作的先后顺序,不然不能不到效果。

插入map 和legend等控件时,适当调节其大小,使界面更美观。

4.3、经验体会和收获刚开始做实验时感觉好难,不知怎么下手,可在完成这几次实验后我熟悉了MO的最基本功能,发现用VB对GIS进行二次开发没有想象中的那么难,但关于控件的问题很多,而且大家都不是很懂,只能多多交流,从网上搜素相关资料。

现如今地理信息系统的应用越来越广发,对它进行二次开发可以更大的发挥此软件的功能。

gis二次开发实习总结

gis二次开发实习总结

gis二次开发实习总结篇一:gis二次开发实习报告重庆交通大学测量与空间信息处理实验报告实验课程:GIS二次开发程序设计实验名称:设计程序完成图像基本操作班级:测绘一班学号: 09210111姓名:程佳琦实验日期:20XX年 6 月 5 日一、实验目的和要求通过编写程序完成以不同的方式(包括菜单、对话框和命令按钮)加载图像,并完成对图像的基本操作,包括放大、缩小和平移。

要求程序简洁界面整洁排列有序,能在正确设计程序的基础上达到对于图像加载及简单操作的程序的熟练程度,为二次开发的学习打下良好的基础。

二、实验内容运用Visual Basic设计程序,分别完成以菜单、对话框和命令按钮为对象的像加载,在加载的基础上实现对图像的一些简单操作,设计程序完成对于图像的一些简单的操作,如放大、缩小和平移等。

三、实验步骤1.设计程序完成菜单加载,并且完成相应放大、缩小和平移。

1)设计程序如下:2)程序运行:3)打开图像并放大:4)图像缩小:5)图像平移:2.设计程序完成对话框图像加载,并完成相应的基本操作,包括图像的放大、缩小和平移。

1)设计程序:2)程序运行:篇二:GIS开发实习报告学号1221030205实习报告GIS程序设计实习起止日期: 20XX 年 7 月13 日至 20XX年 7 月 19 日学班成生姓名级绩吴馁 12级地信2 班指导教师(签字)地质与测绘学院20XX年 7 月 20 日GIS程序设计实习一、实习目的通过GIS程序设计实习,使学生了解需求分析、项目管理方案设计、系统总体设计以及系统详细设计、系统实施、运行和维护等阶段要完成的具体工作;掌握在C#和ArcEngine环境下构建应用型地理信息系统的方法。

二、实习内容熟悉开发环境:Visual Studio 20XX; C#; Arc Engine功能需求分析基于组件技术开发应用型地理信息系统组件式技术已成为当今软件技术的潮流之一。

组件式GIS软件的基本思想是把GIS各大功能模块划分为几个控件。

《GIS二次开发》课程设计报告

《GIS二次开发》课程设计报告

《GIS二次开发课程设计》报告目录1 设计目标 (1)2 需求分析 (1)2.1 业务构成... .. (1)2.2 数据内容... .. (1)3 系统设计 (1)3.1 总体设计 (1)3.2 数据库设计 (2)3.3 平台选择 (2)3.4 详细设计 (2)4 功能实现 (3)4.1 基本功能 (3)4.2 符号化 (3)小结 ............................. 错误!未定义书签。

1 设计目标通过本系统的实施,建立全国各省人口分布和人均GDP排名系统,通过各种地图符号和色彩信息,将地图数据符号化,借此来制作全国各省人口比重、贫富差距大小等专题图。

2 需求分析2.1 业务构成中国人口在世界各国中位居首位,约占世界总人口的19%,根据2015年1月20日国家统计局网站公布2014年中国经济数据,2014年末,中国大陆总人口达136782万人,比上年末增加710万人。

其中,男性人口70079万人,女性人口66703万人,男性人口比女性多3376万人。

中国是人口大国,因此中国的人口分布情况和人口管理显得至关重要。

随着经济的发展,中国的经济状况日益增强。

但是整体而言贫富差距还是很大,所以将地图数据符号化来更好地分析各地区的人均GDP对国家掌控各地经济情况是十分有用的。

2.2 数据内容数据主要包括全国各省的人口数量、总的GDP和人均GDP。

通过这些数据来处理地图,将地图做成不同属性的专题图。

3 系统设计3.1 总体设计此次设计的初衷即是开发一个可以制作专题地图的系统。

以全国人口数量和全国各省人均GDP为例进行制作和开发。

第一步就是找全国省区底图;接着找所需数据(全国各省人口数量和全国各省人均GDP。

)最后,通过VS设计系统,实现专题图制作功能。

3.2 数据库设计刚开始是想将找到的数据以表格的形式导入arccatalog中,希望经过处理可以直接使用,但是做到最后发现并不能将表格直接导入底图。

GIS二次开发试验报告

GIS二次开发试验报告

GIS二次开发程序设计实习报告实验课程:GIS二次开发程序设计实验名称:设计程序完成图像基本操作班级:地信101学号: 1022062011姓名:汪翔实验日期: 2013 年 4 月 5 日GIS二次开发程序设计实习报告 (1)一.选题名称 (3)二.研究现状 (3)三.研究思路与方法 (3)四.编程与实现 (4)Arcmap下实现 (4)vb代码 (4)实现结果 (12)VS下实现 (13)C#代码 (14)五.结果与分析 (21)一.选题名称本次GIS二次程序设计实习中我所研究的是空间信息量算分析中的延伸率分析。

二.研究现状GIS的发展引领着空间分析也在迅速的走向成熟,因为空间分析作为GIS的核心技术,同时也是区别于其它信息系统的主要特征,能够根据地理对象的位置和形态特征等采用相关分析模型对其进行综合性的分析、预测乃至决策和支持。

本文针对空间分析在城市发展建设中的作用以及具体内容进行了探讨研究。

我所研究的延伸率是反应城市空间离散程度的一个重要指标,它的计算公式为:延伸率=L/L’L为区域最长轴的长度,L’为区域最短轴的长度三.研究思路与方法当把城市当作单个面状目标看待时,可以直接使用面状目标的形状系数,如延伸率,形状比,紧凑度,圆形率等。

这些指标计算较简单,反应一个抽象的形状。

当把城市看成是面状目标的几何,可以使用放射状指数,标准面积指数等较为复杂的指标来计算。

反应了城市内部的具体联系。

根据这些指标,可以为政府决策,商业运行,旅游开发等一系列经济文化活动带来较为科学的评价指标和行为指导。

在本次实习中,我所研究的方向是利用延伸率来研究城市的空间。

延伸率反应城市空间的带状延伸程度,带状延伸越明显则城市延伸率越大,反应城市的离散程度越大。

四.编程与实现本次实习中主要利用的平台有ArcMap 以及Visual Studio,用于实现的语言有C#及VB,我在老师的指导和查阅书籍的情况下,分别用两种语言实现延伸率的量算,现将结果展示如下:1)在ArcMap下利用VB进行实现:1.创建一个UI按钮控件,重命名为延伸率,打开代码编辑窗口。

gis二次开发实训总结

gis二次开发实训总结GIS(地理信息系统)二次开发实训总结一、引言GIS(地理信息系统)是一种将地理空间信息与属性信息相结合的技术系统,广泛应用于地理信息管理、地理空间分析、空间决策支持等领域。

在GIS软件应用过程中,二次开发能够满足特定需求,提高工作效率和数据处理能力。

本文将总结我在GIS二次开发实训中的学习经验和体会。

二、实训内容实训内容主要包括GIS软件的基本操作、二次开发的常用工具和技术、以及实际项目的开发。

在实训中,我通过学习和实践,掌握了GIS软件的基本操作技巧,如数据导入、地图绘制、属性查询等。

同时,我还学习了GIS二次开发的常用工具和技术,如ArcGIS Engine、ArcObjects、ArcPy等,这些工具和技术能够帮助我们进行地理空间数据的处理和分析。

在实训的最后阶段,我还参与了一个实际项目的开发,通过对项目需求的分析和编码实现,完成了一个基于GIS的地理空间分析系统。

三、学习经验1. 系统学习GIS基础知识:在进行GIS二次开发之前,充分了解GIS的基本概念和原理非常重要。

只有对GIS的基础知识有清晰的认识,才能更好地进行二次开发工作。

2. 熟悉GIS软件的操作:熟练掌握GIS软件的操作是进行二次开发的基础。

通过反复练习和实践,我逐渐熟悉了GIS软件的各种功能和操作方法,提高了工作效率。

3. 深入学习GIS二次开发工具和技术:GIS二次开发涉及到一些专门的工具和技术,如ArcGIS Engine、ArcObjects、ArcPy等。

通过深入学习这些工具和技术,我能够更好地进行地理空间数据处理和分析,并实现特定需求。

4. 学会利用网络资源:在进行GIS二次开发过程中,遇到问题时,学会利用网络资源进行查找和解决是非常重要的。

通过查阅相关文档和论坛,我解决了许多开发中的问题。

5. 多实践、多项目参与:只有不断地实践和参与项目,才能真正掌握GIS二次开发的技巧和经验。

在实践中,我遇到了许多问题,但通过不断尝试和摸索,最终都找到了解决方法。

《GIS二次开发》课程设计报告_图文.

《GIS二次开发课程设计》报告院(系土木工程学院专业地理信息系统小组成员吴波,黄聪,蔡劼,米锐,房海峰,黄罡起讫日期2010.01.04—2010.01.17 目录1 系统实现目标 ....................................2 系统需求分析 ....................................3 系统设计 ........................................3.1 总体设计 ..........................................................................3.2 数据库设计 ......................................................................3.3 平台选择 ..........................................................................3.4 详细设计 ..........................................................................4 功能实现 ........................................4.1 地图载入 ............................................................................4.2 添加图形要素 .....................................................................4.3 通过图形查属性………………………………………………4.4 通过属性查询图形……………………………………………4.5 通过位置查询图形……………………………………………4.6 缓冲区分析……………………………………………………附件 ..............................................1 系统实现目标通过本系统的实施,建立公共灾害信息查询系统,主要针对于火灾和交通事故。

(完整word版)二次开发实习报告

GIS二次开发实验实验报告学院:测绘工程学院专业:地理信息系统班级:1123101姓名:岳志鹏学号:201120310114课程名称:Supermap objects 组件式开发指导老师:徐效波2014年01月目录GIS二次开发实验 ............................................................................ - 1 -一、实验背景........................................................................................ - 3 -二、实验目的........................................................................................ - 3 -三、实验内容及过程 ........................................................................... - 3 -实验一:快速入门 ......................................................................... - 3 -1. 新建项目 ........................................................................ - 3 -2. 数据准备 ........................................................................ - 4 -3. 添加控件 ........................................................................ - 4 -4. 添加菜单项 .......................................................................... - 5 -5.控件的关联 ......................................................................... - 5 -6. 打开工作空间 ...................................................................... - 6 -8. 地图浏览操作 .................................................................... - 7 -9. 显示属性信息 ...................................................................... - 8 -10. 地图量算 ...................................................................... - 9 -实验二:查询功能 ....................................................................... - 10 -1、案例分析 ........................................................................... - 10 -2、准备的数据 ....................................................................... - 10 -3、主要使用的接口和操作 ................................................... - 11 -(1)查找Missouri河: ................................................. - 11 -(2)查询Missouri河穿过的州:................................. - 12 -(3)查询Missouri河200公里以内的县:................. - 14 -(4)查询South Dakota州包含的州: ....................... - 15 -(5)关联查询South Dakota州的人口数: ............... - 17 - 四、实验总结...................................................................................... - 19 -一、实验背景近年来,随着社会信息化发展进程的不断推进,信息所具备的空间特性在众多社会活动公共行政决策和商业决策中发挥的作用越来越大。

ArcGIS二次开发实习报告

ArcGIS二次开发实习报告一矢量化在ArcCatalog中选择F:\arcgis \ArcGIS开发文件夹新建数据库“My Geodatabase.mdb”在这个数据库中新建站点和道路要素,站点的属性为站点名、站点号,道路的属性包括起点、起点号、终点、终点号、道路名和Shape_Length。

打开ArcMap,将西安市主城区、道路、站点加载进来并进行矢量化,矢量化结果如图所示:二编程打开VB6.0,选择标准EXE;在左侧鼠标右击,点击“部件”选择ESRI Controls、ESRI MapControl、ESRI ToolbarControl 等相关选项;添加菜单栏。

选择工具中的“菜单编辑器”进行编辑,编辑图框如图所示:选择确定之后,结果如图所示:加载Toolbar,选择“加载一个外部位图或图标”,选择“C:\Program Files\ArcGIS\Bin\Icons”添加相应的按钮,如图所示:加载TreeView、MapControl、Timer等,界面如图所示:代码如下:<菜单栏>打开文件:清除文件:退出系统:放大、缩小:漫游:整图显示:站点查询:路径查询:<树结构><Map Control1><Map Control2><Timer><Form>加载站点和道路之后,界面如图所示:三站点查询添加窗体,将窗体命名为FrmStationQuery,并将Caption命名为站点查询。

添加Label 命名为“请输入站点名”,添加两个CommandButton命名为“确定”、“退出”,添加Text1,如图所示:<确定>代码:Private Sub cmdok_Click()Dim pMap As IMapDim pActiveview As IActiveViewDim pScreendisplay As IScreenDisplayDim pFeaturelayer As IFeatureLayerDim pFeatureselection As IFeatureSelectionDim pQueryfilter As IQueryFilterDim pFeatureCursor As IFeatureCursorDim pCursor As ICursorDim pFeaturec As IFeatureClassDim pFeature As IFeatureDim pFields As IFieldsDim pField As IFieldDim pGeometry As IGeometryDim pPoint As IPointDim pSimplemarkersymbol As ISimpleMarkerSymbol Dim pSimplemarkersymbol1 As ISimpleMarkerSymbol Dim pSymbol As ISymbolDim pSymbol1 As ISymbolDim pColor As IColorDim pColor1 As IColorDim pPassbus As StringDim pResult As StringDim count As IntegerDim i As IntegerDim k As Integercount = yerCountIf Text2.Text = "" ThenMsgBox "请输入信息", 48, "提示"Text2.SetFocusExit SubEnd IfSet pMap = Form1.MapControl1.MapSet pActiveview = pMapSet pScreendisplay = pActiveview.ScreenDisplaySet pSimplemarkersymbol = New SimpleMarkerSymbol Set pSimplemarkersymbol1 = New SimpleMarkerSymbol Set pColor = New RgbColorSet pColor1 = New RgbColorpColor.RGB = 255pColor1.RGB = RGB(240, 65, 85) pSimplemarkersymbol.Color = pColor pSimplemarkersymbol.Size = 10Set pSymbol = pSimplemarkersymbol pSimplemarkersymbol1.Color = pColor1 pSimplemarkersymbol1.Size = 10Set pSymbol1 = pSimplemarkersymbol1pSta = "站点名='" + Text2.Text + "'"Set pQueryfilter = New QueryFilterpQueryfilter.WhereClause = pStaFor k = 0 To count - 1If TypeOf yer(k) Is IFeatureLayer ThenSet pFeaturelayer = yer(k)If = "站点" ThenSet pFeatureselection = pFeaturelayerSet pFeatureCursor = pFeaturelayer.Search(pQueryfilter, True) Set pFeature = pFeatureCursor.NextFeatureIf pFeature Is Nothing ThenMsgBox "信息未找到,请重新输入", 48, "信息错误"Text2.Text = ""Text2.SetFocusLabel1.Caption = ""Exit SubElsepResult = "经过该点的车次有:" & vbCrLfFor i = 4 To 8If pFeature.Fields.Field(i).Type = esriFieldTypeInteger Then If pFeature.Value(i) > 0 ThenpPassbus = pFeature.Value(i)pResult = pReasult + "" + pPassbusEnd IfEnd IfIf pFeature.Fields.Field(i).Type = esriFieldTypeString ThenIf pFeature.Value(i) <> Null Then Exit SubpPassbus = pFeature.Value(i)pResult = pResult + "" + pPassbusEnd IfNext iSet pGeometry = pFeature.ShapeSet pPoint = pGeometryWith pScreendisplay.StartDrawing pScreendisplay.hDC, esriNoScreenCache.SetSymbol pSymbol1.DrawPoint pPoint.FinishDrawingEnd WithForm1.MapControl1.FlashShape pGeometry, -3, 500, pSymbol End IfEnd IfEnd IfNext kEnd Sub<退出>代码:<Form>Private Sub Form_Load()Text2.Text = ""End Sub例如,打开站点数据,点击查询菜单栏的“站点查询”,输入要查询的站点“鼓楼”,点击确定,查询结果如图所示:四路径查询添加窗体,将其命名为“FrmPathQuery”,Caption改为“路径查询”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档