基于MO+VB开发的GIS系统 - 图文

基于MO+VB开发的GIS系统

一、课程实验要求:

(1)利用VB和MO编程开发基础地理信息系统;

(2)掌握在MO环境下,通过添加VB中的控件,实现系统的功能; (3)能够读懂并掌握源代码的意义 二、实验平台:

MapObjects(简称MO)是美国的ESRI(环境系统研究所)开发的,是基于COM(Component Object Model,组件式对象模型)技术的地理信息系统,由一组ActiveX控件组成,利用它可以在普通的编程语言(如VB、VC、Delphi等)上实现主要的地理信息系统的功能,如显示一个多层结构的地图、地图放大和缩小、绘制图形元素和图形化文字、在调用对象是使用数据库,查询和更新与对象相关的数据库、在对象上实现基本的统计功能、用特殊方法渲染图层、产生shape格式的地图文件和其它通用格式的图形文件、在航天飞机或卫星影像图上绘制图形和把数据投影到不同的坐标下等 VB6.0

三、实验理论依据或知识背景:

(MapObjects包括一个OLE控件(OCX)叫做地图控件(Map control)和一组(三十多个)OLE目标(objects)。它适用于工业标准程序环境。如VB4.0,Delphi2.0,PowerBuilder,MS Access等;

MapObjects不适用于最终用户。它是为程序开发者设计的。程序开发者可利用MapObjects开发应用程序并把这些程序提供给下一级用户使用;

充分发挥MapObjects和VB的集成功能,可以编制非常实用的应用程序。 该系统具有以下功能:

系统提供放大、缩小、平移、恢复和打印等GIS功能,并在最下面的状态栏实时显示图中点的坐标,查询与分析系统子模块。 四、实验内容、步骤和结果

(一)首先在VB中新建一个工程,然后在[部件]中选择“MapObjects2.0”,这时就可以从工具箱中向RORM中添加Map控件了,并按照以下程序向Map控件中加载图层: 'name

Set layer = NewMapLayer

Set layer.GeoDataset = dc.FindGeoDataset(\layer.Symbol.Size = 9

layer.Symbol.Color = moMaroon

layer.Symbol.SymbolType = moPointSymbol Map1.Layers.Add layer

以上程序加载的图层文件(dbf、shp、shx等)应和该程序在同一文件夹,如果两者不在同一文件夹下,应用dc.Database = App.Path + \到图层文件所在的文件夹。

[1]

添加Map控件

步骤:

(1)打开VB新建EXE工程,编辑窗体属性;

(2)在工具栏中右键点击添加部件: ESRI MapObjects2.4、ESRI

MapObjects Legend Control、ESRI MapObjects

Scalebar Control和Microsoft Windows Common Controls-6.0控

件;

(3)建立Form 后,在工具栏中选择“

(二)地图操作的基本功能 (1)步骤:

在工具栏中选择 CommandButton添加按钮:

(2)进行编程 (1)全局声明

Option Explicit Dim r As MapObjects2.Rectangle

(2)地图放大——单击“地图放大”按钮,地图逐渐放大

Private Sub command1_click()

Dim poi As MapObjects2.Point Dim r As MapObjects2.Rectangle Dim rec As MapObjects2.Recordset Set r = Map1.Extent r.ScaleRectangle 0.5 Map1.Extent = r End Sub

(3)地图缩小——不断单击“地图缩小”按钮,地图逐渐缩小至原始大小 Private Sub command2_click() Dim poi As MapObjects2.Point Dim r As MapObjects2.Rectangle Dim rec As MapObjects2.Recordset

”添加 Map 控件。

Set r = Map1.Extent r.ScaleRectangle 1.6 Map1.Extent = r End Sub

(4)地图还原——单击“地图还原”按钮,地图直接恢复原始大小 Private Sub command3_click() Set Map1.Extent = Map1.FullExtent End Sub

(5)帮助——单击“帮助”按钮,提供系统帮助功能提示

Private Sub command4_click() Dim bz As String bz = \选择工具栏可实现放大、缩小、移动、还原功能;\

& \单击“地图放大”按钮,地图逐渐放大;\单

击“地图缩小”按钮,地图逐渐缩小,直至原始大小;\& vbCrLf & \单击“地图还原”按钮,地图直接恢复原始大小。\& vbCrLf & vbCrLf & \鄢靓雯,2011/11/05\ MsgBox bz, , \中国地图(长江)\ End Sub

(三)添加GIS工具栏 1)步骤:

(1)在工具栏中选择Toolbar和 Imagelist添加工具栏; (2)设置Imagelist1:

2-1) 右击Imagelist1,选择属性,进入设置界面; 2-2)【通用】中设置小图像尺寸,使用自定义的20*20

2-3) 进入【图像】选择卡,添加一系列小图标(注:由于安装夹有 部分文件缺失,无“samples”项,故图片为自行创作)如图:

(3)设置ToolBar1:

3-1) 在【属性】中设置ToolBar.Align=1(工具栏在窗体顶部),缺

省为1;

3-2)右击ToolBar1:,选择属性,进入设置界面; 3-3)【图像列表】中选择Imagelist1,建立联系;

3-4) 进入【按钮】选择卡,点击【插入按钮】,再在【图像】中输 入图标索引号,样式选择2,在【工具提示文本】中输入相应

图标所代表的操作功能,如图:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4