收藏 分享(赏)

mo复习资料.doc

上传人:cjc2202537 文档编号:6579309 上传时间:2019-04-18 格式:DOC 页数:17 大小:122KB
下载 相关 举报
mo复习资料.doc_第1页
第1页 / 共17页
mo复习资料.doc_第2页
第2页 / 共17页
mo复习资料.doc_第3页
第3页 / 共17页
mo复习资料.doc_第4页
第4页 / 共17页
mo复习资料.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、1什么是 GIS 组件软件?你了解哪几种?基本思想是把 GIS 的各大功能模块划分为几个控件,每个控件完成不同的功能。各个 GIS 控件之间,以及 GIS 控件与其它非 GIS 控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的 GIS 应用。代表的有 MapObjects(ESRI)、MapX(MaoInfo)2GIS 开发模式有哪些?独立开发模式、宿主型开发模式、GIS 组件开发模式3OOP 中的几个基本概念:(了解)对象(Object) ,类(Class) ,数据抽象(Data abstraction) ,继承(Inheritance) ,动态绑定(Dynamic bind

2、ing) ,数据封装(Data encapsulation) ,多态性(Polymorphism) ,消息传递(Message passing)4组件式 GIS 的特点小巧灵活、价格便宜;开发简捷;大众化5ActiveX 控件的组成PME 模型(属性、方法、事件)P属性是用来描述和反映对象特征的参数,用来保存对象的数据M方法是控件内部可调用的用以完成特定操作的过程或函数E事件是 VB 预先定义的对象能识别的动作6ESRI 产品体系(了解)7MO 的组成:包括一个 ActiveX 控件 (OCX) 也就是 Map 控件,还包括 45个 ActiveX 自动对象。数据访问对象: 存取地图数据库的一

3、组对象地图显示对象: 用来显示电子地图及符号化地图要素的一组控件(Map,Legend,ScaleBar )和对象几何对象: 点,线,面等.用来与图层要素进行互操作的对象投影对象: 为地图或图层定义坐标系统 ,及进行投影变换的一组对象地址匹配对象: 对美国的街道数据,可快速定位实用对象: 包含一个特殊的字符串对象 Strings8MO 的功能与特点 MapObjects 可以在多种符合工业标准的开发环境下使用,比如 Visual Basic, PowerBuilder, Visual C+等. MapObjects 可以直接嵌入到这些开发环境中使用,允许你快捷地创建应用程序。主要功能 显示一张

4、包含多个图层的地图( 道路,河流) 放大,缩小,漫游 生成几何图形,如点、线、圆、多边形 为图层中的要素添加注释 识别地图上被选中的要素(点,线,面) 通过线、矩形、多边形、圆来选择要素 选取距某参照物一定距离范围内的要素 通过 SQL 语句来选择要素 对选择的要素进行统计 查询与更新被选择的要素的属性数据 制作专题地图 根据字段的值标注图层要素 显示从航片或卫星获取的图像 动态显示实时或时间系列数据 通过输入地址在地图上定位 将数据投影到不同的坐标系下 MapObjects 不适用于最终用户。它是为程序开发者设计的。程序开发者可利用MapObjects 开发应用程序,并把这些程序提供给下一级

5、用户使用。9MO 支持的数据源:Shape 文件、图像文件、数据表或通过 ESRI 的专用数据库引擎连接的专用数据表10一个 Shape 数据至少由三个文件组成:主文件(*.shp)包含描述地理要素几何形状的数据;索引文件(*.shx) 包含数据的索引;数据库文件(*.dbf)包含地理要素的属性,你可以修改字段的定义。11MapObjects (或其它 ESRI 软件)用 World 文件来配准图像。12下面有三种办法可得到帮助:你可点工具栏中地图控件,然后按 F1;可通过 VB 的对象浏览器与 MapObjects 的帮助建立联系 ;可把 VB 编辑窗口的文本游标移到 MapObjects

6、的某一对象,属性或事件上按 F1.13地图对象 Map(控件)主要属性:Name:String; Layers:Layers;Extent:Rectangle 决定地图的显示范围 FullExtent:RectangleCoordinateSystem:VariantTrackingLayer:TrackingLayer14图层和地图:每一个图层表示具有相同的坐标系统和相似属性的一类地理要素,多个基于相同坐标系统的图层组成一幅地图。地图的最上方是动态跟踪层,下方为层集。层集中矢量图层和影像图层可以任意顺序排放,但通常影像层显示在最底层作为背景。先加的图层处于底层,最后添加的图层处于最上方。无论

7、是矢量图层和影像图层都可以通过层集对象索引到。15地图控件是显示图层的平台,它有两个重要的属性:层集和动态跟踪层对象。当你向窗体中加入一地图控件,你也同时建立了一个空层集和空跟踪层。层集可包含 MapLayer 对象和 ImageLayer 对象。它们的顺序决定在地图控件中的相互覆盖关系。MapLayer 对象代表矢量数据。ImageLayer 对象代表栅格数据。动态跟踪层对象显示实时数据。16FlashShape(shape,nTimes) 闪烁显示地图控件上的一个几何对象,参数 nTimes 指定闪烁的次数TrackRectangle,TrackLine ,TrackPolygon17用

8、Refresh 方法刷新地图显示。当你执行下列操作时 Refresh 方法将自动执行:向层集中加入图层或影像层;使用 Pan 和 CenterAt 方法;更新地图控件的 Extent 属性;使用 Clear 或 Remove 方法。注意,有些操作不会引发 Refresh 方法,在编写程序时应在这些操作后加上 Refresh 方法,使操作更新显示。18Map 控件的主要事件:BeforeLayerDraw 事件启动;层集按索引相反顺序调出;AfterLayerDraw事件启动; BeforeTrackingLayerDraw 事件启动;如果任何 GeoEvents 加入到 TrackingLay

9、er 中,他们就被画出;AfterTrackingLayerDraw 事件启动。Click , MouseMove, MouseDown, MouseUp19MapLayer 对象主要属性Name: StringGeoDataSet:GeoDataSet 为 Maplayer 对象指定一个地理数据集,只读属性Records: RecordSet 表示图层属性表中的记录集Render:Object 为 Maplayer 对象指定一个渲染(着色)对象LayerType:LayerTypeConstants 返回一个值表示此图层是一个 ImageLayer 还是 MapLayer 。对于 Mapla

10、yer 对象,此属性值为 moMapLayer (0)moMapLayer 0 此图层表示矢量图层 MapLayermoImageLayer 1 此图层表示影像图层 ImageLayerShapeType:ShapeTypeConstants 表示矢量图层的要素类型moShapeTypePoint 21 点对象moShapeTypeLine 22 线对象moShapeTypePolygon 23 多边形对象Symbol: SymbolExtent: RectangleVisible: Boolean20主要方法SearchExpression(expression)AddRelate(toFi

11、eld, sourceTable, fromField,checkFields as Boolean)SearchByDistance(shape, tolerance, expression)SearchShape(shape, searchMethod, expression )创建由在空间关系上符合参数 searchMethod 所指定条件,逻辑条件符合表达式 expression 要素的所有要素组成的记录集。表达式 expression 是一个满足 SQL 语法的字符串。如果你要省略表达式,则使用一个空字符串 (“), 这个方法返回由符合空间查询条件的要素组成的记录集。21ImageL

12、ayerName:StringExtent:RectangleFile:StringLayerType:LayerTypeConstants 对于 Maplayer 对象,此属性值为moMapLayer (0)在同一地理坐标上,如果你想使用其它图层,图像文件应有一个相关的配准文件。22LayersCount:Integer表示地图中加载的图层数Add(layer)Remove(index)删除层集中的某层。例如:Map1.Layers.Remove (4)Clear 清除地图控件中所有图层Item(index)MoveToBottom(index)MoveTo(fromindex,toinde

13、x)MoveTo、MoveToBottom 和 MoveToTop 方法可改变层集中图层的顺序。23层集是地图控件的重要属性,包含矢量图层和影像层。使用 Add 方法可向层集中加入矢量图层或影像图层,无论添加了矢量图层还是影像图层,FullExtent 属性都会被重新设置以能够完全显示地图中的所有图层。层的表示可以有层名和索引两种方式。例如,下面的例子中索引号为2,图层名称为 Roads:Map1.Layers.Item(2).Symbol.Color = vbBlueMap1.Layers(2).Symbol.Color = vbBlueMap1.Layers.Item(“Roads“).S

14、ymbol.Color = vbBlueMap1.Layers(“Roads“).Symbol.Color = vbBlue以上四个语句的作用是相同的24一旦层集里包括了一些层对象,你必须随时掌握各种层的类型。下面是在层集中返回层类型的例子:Dim Layer As objectFor Each Layer In Map1.LayersIf Layer.LayerType = moMapLayer ThenMsgBox “图层 “ 完全或部分地处在要查找的几何对象中; 完全或部分地包含了要查找的几何对象方法二:按相对位置的范围搜寻特征SearchByDistance(shape, tolera

15、nce, expression)通过查找来创建一个记录集,这些记录集落在以 shape 为中心,tolerance为半径的范围内。 表达式 expression 是一个满足 SQL 语法的字符串。省略表达式,则使用一个空字符串 (“”), 这个方法返回由符合空间查询条件(与已知特征的距离小于规定距离)的要素组成的记录集。Set objRecset = Map1.Layers(index).SearchByDistance(shape, tolerance, expression)tolerance:一个表示距离的数值表达式。在此方法中,用于确定在指定的容错范围内有哪些要素被选中方法三:通过询问

16、方式搜索特征SearchExpression(expression)按属性数据库中的字段的值查询地理特征,查询表达式的语法等于 ANSI SQL 语句的 Where 从句。返回值为图层的选择集。51Legend 控件Active(Index As Integer) As Boolean 返回或设置一个值以指定一个图层是否激活LayerVisible(Index As Integer) As Boolean 返回或设置一个值以确定或控制指定的图层在地图 Map 中是否可见ShowLegend(lyrIndex As Integer) As Boolean 返回或设置一个值,指定在图例对象上面显示

17、或隐藏图层符号ExportToBmp(FileName As String, LayerIndex As Integer = -1) As Boolean将图例导出为一个 BMP 位图文件GetActiveLayer() As IntegerGetEntryName(Index As Integer) As StringHideAllLegend() 在图例控件中隐藏全部图层的符号。LoadLegend(ShowCheck As Boolean = True) 生成关联的地图控件中全部图层的图例。参数为可选参数,默认为真,将显示检查框RemoveAll() 清空图例控件SetMapSource

18、(map As Object) 设置图例控件的源为一个地图对象。参数为 Map 对象ShowAllLegend() 显示地图控件中全部图层的符号legend1.setMapSource Map1legend1.LoadLegend TruePrivate Sub legend1_AfterSetLayerVisible(Index As Integer, isVisible As Boolean) 刷新地图 可以在这里设置地图控件中图层的属性.Map1.RefreshEnd Sub52符号对象包含了控制要素或几何图形如何被显示的一系列属性。根据要进行操作的要素或图形的类别不同 , 可将符号对象

19、的 SymbolType(符号类别)属性与 Style(样式)属性指定为合适的值 ; 如,线要素图层可设置线的样式特征为实线或破折线(- - - -)或者虚线()样式。Size 属性可以设置符号的大小(单位是点) 。还可使用 Color 属性来设置符号的颜色。在设置一个新的 Symbol 对象时 , 应该先设置 SymbolType 属性。一旦你改变了 SymbolType 属性的值 , 则 Symbol 对象就被重置,这个符号对象的其它属性也将变成指定的 SymbolType(符号类别)对应的缺省取值。如果符号对象中引用了一种字体,你可以设置 CharacterIndex 为字体中特定字符对

20、应的索引位置。 如果符号对象是用作一个点要素符号,你可以用 Rotation 属性设置一个角度将符号旋转。 如果为多边形图层,可以设置 OutlineColor 属性为指定的颜色值, 从而设定多边形要素外边线的颜色。当你创建一个新的 MapLayer 对象时,它会自动先给 Symbol Type 设置一缺省值:如果是点要素图层则设置为 moPiontSymbol,如果是线要素图层则设置为 moLineSymbol,如果是多边形要素图层则设置为moFillSymbol。符号对象是可以被创建的对象类型。Dim sym As New MapObjects2.SymbolMO 中与 Symbol 有关

21、的五种对象:图层对象:有 Symbol 属性,用单一的符号来画一图层上所有要素,这是Symbol 对象的最一般用法。地图控件:Map 的方法 DrawShape 使用指定的 Symbol 对象来绘制指定的几何对象。ClassBreaksRenderer 对象:用一组 Symbol 对象来绘制不同类别的要素。ValueMapRenderer 对象:用一组 Symbol 对象来绘制在指定的字段上具有不同取值的要素。TrackingLayer 对象:用一组 Symbol 对象来绘制 GeoEvent 要素。53地图信息可视化:几种制图方式单一符号制图(symbol) ,唯一值(valuemaprenderer) ,分级图(classbreaksrenderer) ,点密度图(dotdensityrenderer) ,柱形图或饼图(chartrenderer ) 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报