利用图形选择特征利用邻近分析选择特征利用SQL表达式选择特征-选择特征的统计查询和更新选择特征的属性数据各种专题制图图按字段的高程或测量值显示-按字段值对特征进行标号■显示遥感图像面实时或时间序列数据的动态显示■地理编码国利用特征的测量值显示点和线事件-地图坐标转换一地图的空间操作■地图的旋转三、MO支持的数据格式Shape文件:福口.shp:包含几何形状;口.shx:包含数据索引;口.dbf:包含属性信息;口Shape文件通过ODBC(开放数据库互连,是微软开放服务结构中有关DB的组成部分,它建立了一组规范,并提供了一组对DB访问的标准API)读入,在安装MO时同时被装入并注册;CADCoverage口Lab标识点坐标数据文件口Pri投影信息文件口arf:弧坐标和拓扑关系表口pal:多边形图形文件6
6 ◼ 利用图形选择特征 ◼ 利用邻近分析选择特征 ◼ 利用 SQL 表达式选择特征 ◼ 选择特征的统计 ◼ 查询和更新选择特征的属性数据 ◼ 各种专题制图 ◼ 按字段的高程或测量值显示 ◼ 按字段值对特征进行标号 ◼ 显示遥感图像 ◼ 实时或时间序列数据的动态显示 ◼ 地理编码 ◼ 利用特征的测量值显示点和线事件 ◼ 地图坐标转换 ◼ 地图的空间操作 ◼ 地图的旋转 三、MO 支持的数据格式 ◼ Shape 文件: .shp:包含几何形状; .shx:包含数据索引; .dbf:包含属性信息; Shape 文件通过 ODBC(开放数据库互连,是微软开放服务结构中有 关 DB 的组成部分,它建立了一组规范,并提供了一组对 DB 访问的标准 API) 读入,在安装 MO 时同时被装入并注册; ◼ CAD ◼ Coverage Lab 标识点坐标数据文件 Prj 投影信息文件 arf:弧坐标和拓扑关系表 pal:多边形图形文件
口pat:多边形属性文件口arc:弧线图形文件口aat:弧线属性文件口Arx:5弧段索引文件口Pax:标识点索引文件;口tic:控制点文件口cnt:多边形中心表;■图像文件:航片、卫片口格式:BMP、TIFF、JPEG、ERDASImage、GIF等■属性表:口建立连接属性表和与特征表(shape的dBASE)之间的关系;■SDE:高性能制图数据服务器四、MO对象MO中有46个对象,可以划分成5个大类:数据操作对象类(10个)、地图显示对象类(17个)、投影对象类(8个)、图形对象类(7个)和地址匹配对象类(4个)。1、数据操作对象类数据操作对象类中各个对象的关系如图2-1所示。通过定义DataConnection对象可以确定连接的数据库或文件目录。利用DataConnection对象的GeoDatasets属性可以得到图层数据的集合对象(GeoDatasets)。利用GeoDatasets的Item方法可以得到其中的一个图层文件。利用Layers集合的Add方法可以把图层文件增加到地图控件中,并作为一个MapLayer对象。利用MapLayer对象的Records属性可以得到Recordset对象。通过Recordset对象的Fields属性可以得到Fields集合;通过Fields集合的Item方法可以得到其中的一个Field对象。通过Recordset对象的MoveFirst、MoveNext、MovePrevious方法可以对Recordset对象中的记录进行定位。2、地图显示对象类地图显示对象类中各个对象的关系如图2-2所示。7
7 pat:多边形属性文件 arc:弧线图形文件 aat:弧线属性文件 Arx: 弧段索引文件 Pax: 标识点索引文件; tic:控制点文件 cnt:多边形中心表; ◼ 图像文件:航片、卫片 格式:BMP、TIFF、JPEG、ERDAS Image、GIF 等 ◼ 属性表: 建立连接属性表和与特征表(shape 的 dBASE)之间的关系; ◼ SDE:高性能制图数据服务器 四、MO 对象 MO 中有 46 个对象,可以划分成 5 个大类:数据操作对象类(10 个)、地图显示对象 类(17 个)、投影对象类(8 个)、图形对象类(7 个)和地址匹配对象类(4 个)。 1、数据操作对象类 数据操作对象类中各个对象的关系如图 2-1 所示。 通过定义 DataConnection 对象可以确定连接的数据库或文件目录。利用 DataConnection 对象的 GeoDatasets 属性可以得到图层数据的集合对象(GeoDatasets)。利用 GeoDatasets 的 Item 方法可以得到其中的一个图层文件。利用 Layers 集合的 Add 方法可以把图层文件 增加到地图控件中,并作为一个 MapLayer 对象。 利用 MapLayer 对象的 Records 属性可以得到 Recordset 对象。通过 Recordset 对象的 Fields 属性可以得到 Fields 集合;通过 Fields 集合的 Item 方法可以得到其中的一个 Field 对 象。 通过 Recordset 对象的 MoveFirst、MoveNext、MovePrevious 方法可以对 Recordset 对 象中的记录进行定位。 2、地图显示对象类 地图显示对象类中各个对象的关系如图 2-2 所示
通过Database等属性与数据DataConnection对象库或文件目录建立连接通过GeoDatasets属性GeoDatasets集合通过GeoDataset属性通过Item方法GeoDataset对象 MapLayer对象通过Records属性Recordset对通过TableDesc属性通过Fields属性Fields集合TableDesc对象通过Item方法通过Records属性Field对象Table 对Strings集合Statistics对象通过CalculateStatistics方法图2.1数据操作对象类中各个对象的关系LabelPlacer对象Symbol对象Map控件TextSymbol对象通过Layers属性Event Renderer对象Layers集合ZRenderer对象MapLayer对象Chart Renderer对象通过Item方法ImageLayer对象ClassBreaks Renderer对象通过TrackingLayers属性ValueMapRenderer对象TrackingLayer对象GeoEvent对象DotDensityRenderer对象通过Event属性Label Renderer对象图2-2地图显示对象类中各个对象的关系GroupRenderer对象8
8 Map控件 Layers集合 MapLayer对象 ImageLayer对象 TrackingLayer对象 GeoEvent对象 通过Item方法 通过TrackingLayers属性 通过Layers属性 通过Event属性 Event Renderer对象 ZRenderer对象 Chart Renderer对象 TextSymbol对象 Symbol对象 ClassBreaks Renderer对象 ValueMap Renderer对象 DotDensity Renderer对象 Label Renderer对象 Group Renderer对象 LabelPlacer对象 图 2-2 地图显示对象类中各个对象的关系 DataConnection对象 GeoDatasets集合 GeoDataset对象 Recordset 对 象 Fields集合 Field对象 Statistics对象 TableDesc对象 Table 对 象 Strings集合 通过GeoDatasets属性 通过Item方法 通过Fields属性 通过Item方法 通过CalculateStatistics方法 通过TableDesc属性 通过Records属性 通过Database等属性与数据 库或文件目录建立连接 MapLayer对象 通过GeoDataset属性 通过Records属性 图 2.1 数据操作对象类中各个对象的关系
MapControl上的图层包括MapLayer、ImageLayer和TrackingLayer。一个MapControl只有一个TrackingLayer。MapLayer和ImageLayer的集合所对应的对象为Layers。MapLayer有不同的显示方式,通过给MapLayer的Symbol属性赋值,使MapLayer以新的符号显示;通过给MapLayer的Renderer属性赋值,使MapLayer以新的显示方式显示。3、投影对象类投影对象类中各个对象的关系如图2-3所示。有两种类型坐标系;地理坐标系和投影坐标系。通过Prime-Meridian、Datum和Unit三个对象可以定义一个地理坐标系,其中,Datum包括Spheroid对象的定义。通过GeoCoord、SysProjCoordSys和Unit三个对象可定义一个投影坐标系。Map控件和MapLayer对象有CoordinateSystem属性,该属性可以用GeoCoordSys对象或ProjCoordSys对象来赋值。同时GeoCoordSys对象和ProjCoordSys对象又可以通过Type属性定义具体的坐标类型。MapLayer对象有GeographicTransformation属性,该属性可以用GeoTransformation对象来赋值,GeoTransformation对象有type属性用于定义坐标变换类型。GeoTransformation对象PrimeMeridian对象GenConrdSvs对象Datum对象Spheroid对象Unit对象ProjCoordSys对象Map控件Projection对象MapLayer对象图2-3投影对象类中各个对象的关系4、图形对象类图形对象类中各个对象的关系如图2-4所示。通过Point对象的x、y属性可以定义一个点。通过Points对象的Add方法可以把一个点增加到Points对象中。一个线对象和一个多边形对象可以是多个部分(Parts)组成,通过Parts属性可以得到Parts集合。Parts集合的Add方法可以把Points对象增加到Parts集合
9 Map Control 上的图层包括 MapLayer、ImageLayer 和 TrackingLayer。一个 Map Control 只有一个 TrackingLayer。MapLayer 和 ImageLayer 的集合所对应的对象为 Layers。 MapLayer 有不同的显示方式,通过给 MapLayer 的 Symbol 属性赋值,使 MapLayer 以 新的符号显示;通过给 MapLayer 的 Renderer 属性赋值,使 MapLayer 以新的显示方式显示。 3、投影对象类 投影对象类中各个对象的关系如图 2-3 所示。 有两种类型坐标系;地理坐标系和投影坐标系。 通过 Prime-Meridian、Datum 和 Unit 三个对象可以定义一个地理坐标系,其中,Datum 包括 Spheroid 对象的定义。 通过 GeoCoord、SysProjCoordSys 和 Unit 三个对象可定义一个投影坐标系。 Map 控件和 MapLayer 对象有 CoordinateSystem 属性,该属性可以用 GeoCoordSys 对 象或 ProjCoordSys 对象来赋值。同时 GeoCoordSys 对象和 ProjCoordSys 对象又可以通过 Type 属性定义具体的坐标类型。 MapLayer 对象有 GeographicTransformation 属性,该属性可以用 GeoTransformation 对 象来赋值, GeoTransformation 对象有 type 属性用于定义坐标变换类型。 4、图形对象类 图形对象类中各个对象的关系如图 2-4 所示。 通过 Point 对象的 x、y 属性可以定义一个点。通过 Points 对象的 Add 方法可以把一个 点增加到 Points 对象中。一个线对象和一个多边形对象可以是多个部分(Parts)组成,通 过 Parts 属性可以得到 Parts 集合。Parts 集合的 Add 方法可以把 Points 对象增加到 Parts 集 合。 GeoTransformation对象 GeoCoordSys对象 ProjCoordSys对象 Projection对象 Prime Meridian对象 Datum对象 Unit对象 Spheroid对象 Map控件 MapLayer对象 图 2-3 投影对象类中各个对象的关系
通过Item方法Point对象通过Add方法Points对象Line对象Parts集合通过Parts属性Polygon对象通过Bottom、Left、Top和Right四个属性Rectangle对象可以定义一个Rectangle对象Ellipse对象Ellinse对象图2-4投影对象类中各个对象的关系5、地址匹配对象类地址匹配对象类共有4个对象(图2-5)。AddressLocation对象PlaceLocator对象Standardizer对象Geocoder对象图2—5地址匹配对象类五、如何学习MO1、利用MapObjects在线帮助在地图控件处于活动(选中)状态下,按F1将打开MO在线帮助。MO在线帮助含有每个对象的特性、方法、事件和变量的详细文档。学习MapObjects的最好方法是在在线帮助中利用编码例子。大多数帮助条目含有可以在VB工程中执行的例子。10
10 5、地址匹配对象类 地址匹配对象类共有 4 个对象(图 2-5)。 五、如何学习 MO 1、利用 MapObjects 在线帮助 在地图控件处于活动(选中)状态下,按 F1 将打开 MO 在线帮助。MO 在线帮助含有 每个对象的特性、方法、事件和变量的详细文档。学习 MapObjects 的最好方法是在在线帮 助中利用编码例子。大多数帮助条目含有可以在 VB 工程中执行的例子。 AddressLocation对象 Standardizer对象 Geocoder对象 PlaceLocator对象 图 2—5 地址匹配对象类 Point对象 Points对象 Line对象 Polygon对象 Rectangle对象 Ellipse对象 通过Item方法 Parts 集合 通过Parts属性 通过Add方法 通过Bottom、Left、Top和Right四个属性 可以定义一个Rectangle对象Ellipse对象 图 2-4 投影对象类中各个对象的关系