mo复习资料(17页).doc





《mo复习资料(17页).doc》由会员分享,可在线阅读,更多相关《mo复习资料(17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-123 mo复习资料-第 17 页4 什么是GIS组件软件?你了解哪几种?基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。代表的有MapObjects(ESRI)、MapX(MaoInfo)2GIS开发模式有哪些?独立开发模式、宿主型开发模式、GIS组件开发模式3OOP中的几个基本概念:(了解)对象(Object),类(Class),数据抽象(Data abstraction),继承(Inheritance),动态绑定(Dynamic bindi
2、ng),数据封装(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开发应用程序,并把这些程序提供给下一级用户使用。9MO 支持的数据源:Shape 文
5、件、图像文件、数据表或通过ESRI的专用数据库引擎连接的专用数据表10一个Shape 数据至少由三个文件组成:主文件(*.shp)包含描述地理要素几何形状的数据;索引文件(*.shx)包含数据的索引;数据库文件(*.dbf)包含地理要素的属性,你可以修改字段的定义。11MapObjects (或其它 ESRI 软件)用World文件来配准图像。12下面有三种办法可得到帮助:你可点工具栏中地图控件,然后按F1;可通过VB的对象浏览器与MapObjects的帮助建立联系;可把VB编辑窗口的文本游标移到MapObjects的某一对象,属性或事件上按F1.13地图对象Map(控件)主要属性:Name:
6、String; Layers:Layers;Extent:Rectangle 决定地图的显示范围 FullExtent:RectangleCoordinateSystem:VariantTrackingLayer:TrackingLayer14图层和地图:每一个图层表示具有相同的坐标系统和相似属性的一类地理要素,多个基于相同坐标系统的图层组成一幅地图。地图的最上方是动态跟踪层,下方为层集。层集中矢量图层和影像图层可以任意顺序排放,但通常影像层显示在最底层作为背景。先加的图层处于底层,最后添加的图层处于最上方。无论是矢量图层和影像图层都可以通过层集对象索引到。15地图控件是显示图层的平台,它有两
7、个重要的属性:层集和动态跟踪层对象。当你向窗体中加入一地图控件,你也同时建立了一个空层集和空跟踪层。 层集可包含MapLayer对象和ImageLayer对象。它们的顺序决定在地图控件中的相互覆盖关系。MapLayer对象代表矢量数据。ImageLayer对象代表栅格数据。动态跟踪层对象显示实时数据。16FlashShape(shape,nTimes) 闪烁显示地图控件上的一个几何对象,参数nTimes指定闪烁的次数TrackRectangle,TrackLine,TrackPolygon17用Refresh方法刷新地图显示。当你执行下列操作时Refresh方法将自动执行:向层集中加入图层或影
8、像层;使用Pan和CenterAt方法;更新地图控件的Extent属性;使用Clear或Remove方法。注意,有些操作不会引发Refresh方法,在编写程序时应在这些操作后加上Refresh方法,使操作更新显示。18Map控件的主要事件:BeforeLayerDraw事件启动;层集按索引相反顺序调出;AfterLayerDraw事件启动;BeforeTrackingLayerDraw事件启动;如果任何GeoEvents加入到TrackingLayer中,他们就被画出;AfterTrackingLayerDraw事件启动。Click , MouseMove, MouseDown, MouseU
9、p19MapLayer对象主要属性Name: StringGeoDataSet:GeoDataSet为Maplayer 对象指定一个地理数据集,只读属性Records: RecordSet表示图层属性表中的记录集Render:Object为Maplayer对象指定一个渲染(着色)对象LayerType:LayerTypeConstants返回一个值表示此图层是一个 ImageLayer 还是 MapLayer 。对于Maplayer对象,此属性值为moMapLayer (0)moMapLayer0此图层表示矢量图层MapLayermoImageLayer1此图层表示影像图层 ImageLaye
10、rShapeType:ShapeTypeConstants表示矢量图层的要素类型moShapeTypePoint 21点对象moShapeTypeLine22线对象moShapeTypePolygon23多边形对象Symbol: SymbolExtent: RectangleVisible: Boolean20主要方法SearchExpression(expression)AddRelate(toField, sourceTable, fromField,checkFields as Boolean)SearchByDistance(shape, tolerance, expression)S
11、earchShape(shape, searchMethod, expression )创建由在空间关系上符合参数searchMethod 所指定条件,逻辑条件符合表达式expression 要素的所有要素组成的记录集。表达式 expression是一个满足SQL语法的字符串。如果你要省略表达式,则使用一个空字符串 (), 这个方法返回由符合空间查询条件的要素组成的记录集。21ImageLayerName:StringExtent:RectangleFile:StringLayerType:LayerTypeConstants对于Maplayer对象,此属性值为moMapLayer (0)在同
12、一地理坐标上,如果你想使用其它图层,图像文件应有一个相关的配准文件。22LayersCount:Integer表示地图中加载的图层数Add(layer)Remove(index)删除层集中的某层。例如:Clear清除地图控件中所有图层Item(index)MoveToBottom(index)MoveTo(fromindex,toindex)MoveTo、MoveToBottom和MoveToTop方法可改变层集中图层的顺序。23层集是地图控件的重要属性,包含矢量图层和影像层。使用Add方法可向层集中加入矢量图层或影像图层,无论添加了矢量图层还是影像图层,FullExtent属性都会被重新设置
13、以能够完全显示地图中的所有图层。层的表示可以有层名和索引两种方式。例如,下面的例子中索引号为2,图层名称为Roads:MaMap1.Layers(2).Symbol.Color = vbBlueMap1.Layers(Roads).Symbol.Color = vbBlue以上四个语句的作用是相同的24一旦层集里包括了一些层对象,你必须随时掌握各种层的类型。下面是在层集中返回层类型的例子:Dim Layer As objectFor Each Layer In Map1.LayersIf Layer.LayerType = moMapLayer ThenMsgBox 图层 & Layer.Na
14、me & 是矢量图层ElseIf Layer.LayerType = moImageLayer ThenMsgBox 图层 & Layer.Name & 是影像图层End IfNext Layer25DataConection数据链接对象Database:StringPassword:StringServer:StringUser:StringGeoDatasets: GeoDatasetsDataConnection对象用来连接装有Shape 文件的文件夹或SDE数据库。要连接装有Shape 文件的文件夹,需设置数据库特性为具有文件夹名的字符串,并应用Connect方法。连接SDE数据库,需
15、设置数据库、密码、服务器和用户特性,并应用Connect方法和检查连接特性。FindGeoDataset(Name:String):GeoDatasetConnect26MapObjects2.GeoDataset对象和GeoDatasetsGeoDataset表示从Shape 文件或SDE中得到的地图数据的一层。主要属性:Name: StringAllowSharing :BooleanGeoDatasets集表示DataConnection里所有的GeoDataset,即文件夹里所有的Shape 文件或SDE数据库里所有的SDE层。主要属性:Count: Integer主要方法:Item(
16、index):GeoDataset27增加矢量数据(1)增加Shape 文件使用MapObjects的一个最基本的任务是往你的地图里增加Shape 文件。以下是增加Shape 文件的步骤:定义一个新的DataConnection对象。 Dim dConn As New MapObjects2.DataConnection定义一个新的MapLayer对象。Dim mLayer As New MapObjects2.MapLayer设置DataConnection对象的Database属性为包含Shape 文件的文件夹。dConn.Database = d:mogischina使用DataConn
17、ection对象的方法Connect连接到指定的地理空间数据dConn.Connect将MapLayer对象的GeoDataset属性设置为DataConnection对象的FileGeoDataset方法(用Shape 文件名作参数)的返回值。Set mLayer.GeoDataset = dConn.FindGeoDataset(Roads)用地图控件属性Layers对象的方法Add向层集里加入图层。Dim dConn As New MapObjects2.DataConnectionDim mLayer As New MapObjects2.MapLayerdConn.Database
18、= d:mogischinaif dConn.Connect ThenSet mLayer.GeoDataset = dConn.FindGeoDataset(Roads)28当你通过DataConnection对象的FindGeoDataset方法把图层加到GeoDataset对象中时,以下操作将自动执行:Extent属性被更新为地图的最大范围。(Map)Records属性被分配了一Recordset对象。(MapLayer)ShapeType属性将依据Shape 文件类型被设成moPoint、moLine、moPolygon。(MapLayer)Symbol设为缺省,并随即赋予颜色。(Ma
19、pLayer)如果FindGeoDataset方法成功,Valid属性将被设成True。(MapLayer)Visible属性设成True。(MapLayer)Renderer属性将设为Nothing,等待你设定其中的一个Rerderer对象:ClassBreaksRenderer、ValueMapRenderer、DotDensityRenderer或LableRenderer。29增加一个图像文件Dim iLayer As New MapObjects2.ImageLayeriLayer.File = c:dataWashington.bmp30访问图层可用图层名称或索引来访问图层,如图层
20、(云南县界:云南县界.shp)Map1.Layers(2).Symbol.Color=moRed“云南县界”).Symbol.Color=moLightYellowMap1.Layers(“云南县界”).Symbol.Color=moOrange31放大Set r = Map1.TrackRectangleSet Map1.Extent = r或者Set r = Map1.Extentr.ScaleRectangle (0.5)Set Map1.Extent = r缩小Set r = Map1.Extentr.ScaleRectangle (2)Set Map1.Extent = r漫游Map
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mo 复习资料 17

限制150内