67
Page 1 MapX 开开开开 开开开开

MapX 开发培训

Embed Size (px)

DESCRIPTION

MapX 开发培训. 方正数码. MapX 简介. MapX 是 MapInfo 公司的地图化的 ActiveX, 在 使用面向对象语言(如: VB, VC++, Delphi, PB )开发的应用中嵌入 MapX 可以使您的应用具有强大的地图功能 . ActiveX 是 Microsoft 为了使开发人员能够把计算机桌面环境与构成 Internet 及其大量资源的环境集成起来,同时保护在 Windows 中现有的开发投资。由于 ActiveX 控件是被封装起来的,它适合于各种编程语言(如 VB 、 VC ++等),因此只需知道控件支持的属性、方法和事件,就可使用控件。. - PowerPoint PPT Presentation

Citation preview

Page 1: MapX 开发培训

Page 1

MapX 开发培训

方正数码

Page 2: MapX 开发培训

Page 2

MapX 简介 MapX 是 MapInfo 公司的地图化的 ActiveX, 在使用面向对象语言(如: VB, VC++, Delphi, PB )开发的应用中嵌入 MapX可以使您的应用具有强大的地图功能 . ActiveX 是 Microsoft 为了使开发人员能够把计算机桌面环境与构成 Internet 及其大量资源的环境集成起来,同时保护在Windows 中现有的开发投资。由于 ActiveX 控件是被封装起来的,它适合于各种编程语言(如 VB 、 VC ++等),因此只需知道控件支持的属性、方法和事件,就可使用控件。

Page 3: MapX 开发培训

Page 3

MapX 的主要优点 MapX 易于使用且价格低廉 .

MapX 能实现 Pro 95% 以上的功能。 MapX 用于实时监控, GPS 和监控等。 MapX 提供面向对象开发,提供更为广阔的开发空间 MapX 为 WEBGIS 的开发打下基础。

Page 4: MapX 开发培训

Page 4

MapX 主要欠缺的功能 数字化仪输入

排版输出 PRO 工具管理器中所有的工具,如数据转换 Mapx 不支持统计图

Page 5: MapX 开发培训

Page 5

MapX 的安装 配置 系统需求 Win95, Win98, NT4.0

不支持 Win3.1 至少 15 兆可用空间,不包括地图数据安装使用

安装新版本前先 uninstall 旧版本

Page 6: MapX 开发培训

Page 6

主要支持的语言 VB

右键单击 Visual Basic 工具箱,从快捷方式菜单中选择部件。在部件对话框中,单击控件选项卡,寻找列表中的“ MapInfo MapX V5” 选中它Map 控件出现在工具箱上。

VCProject menu, Add To Project>Files, choose MapX.cpp as the file to Add.

PBOLE>Insert Object Dialog>Insert object> MapInfo MapX V5

Delphi Component>Install ActiveX control> MapInfo MapX V5

Page 7: MapX 开发培训

Page 7

主要对象

Page 8: MapX 开发培训

Page 8

主要对象的说明 Geoset 是地图图层及图层属性值的集合。 GeoSet 决定地图对象中放入的表的库名以及他们的设置值。 Layers, Layer 用户的数据反映在地图上通常根据点、线、面的层次结构进行归类。每一个独立的图层都可以作为一个独立的地图。 MapX 中调用的是一个由多个独立地图图层组成的地图集合。 Feature, Features, Selection 图层对象是由图形对象 (Feature) 集合、属性以及样式组成的。图形对象集合 (Features Object) 是由多个图形对象 (Feature Object) 组成的 Annotations 利用注释在地图上显示相应的文本或者符号。类似与 Pr

ofessional 中的装饰层 Datasets 可以将外部数据与你的地图进行绑定。 Themes 专题化地图是根据特定专题普染地图的过程。

Page 9: MapX 开发培训

Page 9

地图对象 Map

控制地图显示的四个要素 CenterX : Map1.CenterX = -79.4458 CenterY : Map1.CenterY = 44.9932 Zoom : Map1.Zoom = 500 Rotation : Map1.Rotation = 179

X

Y

Page 10: MapX 开发培训

Page 10

地图对象 Map

另外,在设计阶段,属性页还可以通过在窗体中地图对象上点击鼠标右键进行调用。见下图:

Page 11: MapX 开发培训

Page 11

地图对象属性 (Map Properties) Annotations AreaUnit AutoRedraw Bounds CenterX CenterY CurrentTool DataSet DataSetGeoField DataSets DataSetTheme DefaultStyle DisplayCoordSys DefaultConversionResolution

ExportSelection FeatureFactory GeoDictionary Geoset Geosets GeoSetWidth hWnd Layers MapPaperHeight MapPaperWidth MapUnit MaxSearchTime

MousePointerNumericCoordSys PaperUnitPreferCompactLegendsRotationSelectionStyleTitleTitleTextVersionZoom

Page 12: MapX 开发培训

Page 12

Geoset

GeoSet 是一个地图图层及图层属性值的集合。 一个文本文件,在 Geoset Manager 中制作。 GeoSet 可以在设计时被指定。如果在运行过程中被指定,原来已安装的图层以及数据库 (DataSet)会被删除。然后装入新的 GeoSet 。如果用户只想删除已装入的图层以及 DataSets而不想装入新的 GeoSet,用户可以设置一个空的 Geoset 。 系统提供的默认 GeoSet文件为 US.GST 。 类似于 Professional 中的 WorkSpace

Page 13: MapX 开发培训

Page 13

Geoset Manager 和 GeoDictionary

Geoset Manager: 如果你确定你得到的地图,你就可以将它保存为一个 GeoSet (*.GST) 文件。当你打开这个 GeoSet 文件,所有的地图图层和设置都将以保存值返回。使用 geosetmanager 的时候,所有的 .gst文件要放在 \Program Files\MapInfo\MapX 5.0\Maps>目录下。

GeoDictionary: 用于外部数据与图层的自动绑定,以及创建专题图层。实际上是一个文件包含有数据绑定的信息 geodict.dct 。

Page 14: MapX 开发培训

Page 14

Layers

用户的数据反映在地图上通常根据点、线、面的层次结构进行归类。每一个独立的图层都可以作为一个独立的地图。 MapX 中调用的是一个由多个独立地图图层组成的地图集合。

Page 15: MapX 开发培训

Page 15

Layers Methods

图层控制对话框• Map1.Layers.LayersDlg

Page 16: MapX 开发培训

Page 16

Layers Property AnimationLayer

Set Map.Layers.AnimationLayer = nothing Bounds

Map1.Bounds = ViewLayer.Bounds Count InsertionLayer

set lyrInsertion = Map1.Layers("USA") lyrInsertion.Editable = True Set Map1.Layers.InsertionLayer = lyrInsertion Item

Page 17: MapX 开发培训

Page 17

Layers Methods 建新层

• Map1.Layers.CreateLayer “Offices”[Layer=]OBJECT.CreateLayer (Name , [FileSpec] , [Position] , [KeyLe

ngth] , [CoordSys]) 加入图层

• Map1.Layers.Add “C:\Map\China.tab”[Layer=]OBJECT.Add (LayerInfo, [Position]) ]。

Page 18: MapX 开发培训

Page 18

Layers Methods 删除图层

• Map1.Layers.Remove 3 移动图层

• Map1.Layers.Move 1,2 用户自定义图层

• Map1.AddUserDrawLayer

Page 19: MapX 开发培训

Page 19

layerInfo 对象标准Table 表:用户自定义图层:在此图层中,用户可以使用如 Windows API函数来画图。可自注册的栅格图象:如: GeoTiff。栅格图象:以 Tab表形式形式调入。支持 24 位真彩栅格图象。支持格网文件支持 (MIG)。ARCVIEW 的 SHAPE文件:步骤如下:

– .将其中的 DBF 文件写成 TAB 表形式 .– .打开 .tab 文件,将 “ Type DBF Charset "WindowsSimpChinese"” 改为” Type SHAPEFILE Charset "WindowsSimpChinese"”.– .将文件加入应用 .

Page 20: MapX 开发培训

Page 20

LayerInfoTypeConstants miLayerInfoTypeTab = 0 miLayerInfoTypeUserDraw = 1 miLayerInfoTypeRaster = 2 miLayerInfoTypeShape = 3 miLayerInfoTypeServer = 4 miLayerInfoTypeGeodictUserName = 5 miLayerInfoTypeTemp = 6 miLayerInfoTypeNewTable = 7

Page 21: MapX 开发培训

Page 21

远程数据库 连接ODBC 数据源,要求数据库已经地图化。 Code : Dim LayerInfo As New MapXLib.LayerInfo LayerInfo.Type = miLayerInfoTypeServer LayerInfo.AddParameter “name”, “ODBCLayer” LayerInfo.AddParameter”connectstring",“Mapstats” LayerInfo.AddParameter "query",”Select * from Us_cust” LayerInfo.AddParameter "cache", “on” LayerInfo.AddParameter "toolkit", "ODBC" Set lyr = Map1.Layers.Add(LayerInfo, 1)

Page 22: MapX 开发培训

Page 22

使用 Oracle 图层的 Visual Basic 示例 Dim LayerInfoObject As New LayerInfo Dim lyr As Layer Dim l_strchris As String l_strchris = "Select * From ""CITY"".""STATESBOUND""" LayerInfoObject.Type = miLayerInfoTypeServer LayerInfoObject.AddParameter "name", "cancaps" LayerInfoObject.AddParameter "ConnectString", "SRVR=MARILYN;UID=city;PWD=city" LayerInfoObject.AddParameter "Query", l_strchris LayerInfoObject.AddParameter "toolkit", "ORAINET" LayerInfoObject.AddParameter "AutoCreateDataset", 1 LayerInfoObject.AddParameter "DatasetName", "Uscty" Map1.Layers.Add LayerInfoObject

Page 23: MapX 开发培训

Page 23

AddServerLayer 方法: Map1.Layers.AddServerLayer "ssa","DSN=Spatial;HOST=spw;UUID=mapzk;UPWD=mapzk;UID=mapzk; PWD=mapzk;OSID=map", "select * from ""sloil"""

Page 24: MapX 开发培训

Page 24

常用的 Layer property

AutoLabel Name OverrideStyle Selectable, Editable, Visible Style ZoomLayer, ZoomMax, ZoomMin LabelProperties

Page 25: MapX 开发培训

Page 25

常用的 Layer method

AddFeature, DeleteFeature BeginAccess, EndAccess Refresh UpdateFeature Search Layer.Pack Layer.SupportsPack

Page 26: MapX 开发培训

Page 26

标准 Tool 的使用 Map1.CurrentTool = miZoomInTool

Map1 是 MapX 的对象名, miRadiusSelect 是常量。在指定位置使用用户工具。CurrentTool 设置为当前工具。取值为 ToolConstants 值。默认值 为 miArrowTool 。

Page 27: MapX 开发培训

Page 27

标准 Tool 的分类 导航工具 (Zoom-In, Zoom-Out, Pan, Center) 标注工具: 一系列选择工具 . Annotations (symbols and text).

Page 28: MapX 开发培训

Page 28

自定义 Tools

Map.CreateCustomTool ToolNumber, Type, Cursor, [ShiftCursor], [CtrlCursor]

• ToolNumber 用于在此后引用它的工具的数量。此值必须是介于 1 和 999 之间的整数。• Type 描述工具行为的类型。取值为 ToolTypeConstants 的值。• Cursor 当前使用工具的光标形状。• ShiftCursor 表示应该在按住 SHIFT 键时出现的光标• CtrlCursor 表示应该在按住 CTRL 键时出现的光标

Page 29: MapX 开发培训

Page 29

自定义 Tools

使用工具:需要设置 MapX 对象 CurrentTool 的值。 Private Sub Form_Load() Map1.CreateCustomTool 99, miToolTypePoint , miCrossCursor End Sub

Private Sub Command1_Click()

Map1.CurrentTool = 99 End Sub

Page 30: MapX 开发培训

Page 30

style

Map.defaultstyle layer.style feature.style label .style LabelProperties .style Graphic .style MultivarCategory .style RangeCategories .style IndividualValueCategories .style

Page 31: MapX 开发培训

Page 31

coordinate

Map.DisplayCoordSys 显示坐标系统 Map.NumericCoordSys 数字坐标系统 Layer.CoordSys

Page 32: MapX 开发培训

Page 32

Label Layer.AutoLabel=true Map.CurrentTool = miLabelTool LabelAtPoint: Map.LabelAtPoint (x, y) layer.LabelProperties 属性 Map.InfoTipSupport labelproperties.DataField LabelProperties.LabelAlong Label 对象和 Labels 集合 LabelChanged 事件: Map.EditableLabels

Page 33: MapX 开发培训

Page 33

Annotations

标 注 对 象

方法 描述 代 码 样 例AddSymbol 增加一个符号标注。可使用缺省符

号样式。Map1.Annotations.AddSymbol X, Y

AddText 增加文本标注。第四个参数为第一个字的起始位置。

Map1.Annotations.AddText“Developer Services”, -79.44,46.8889, miPositionTL

Remove 删除指定标注。 Map1.Annotations.Remove 1RemoveAll 删除所有的标注。 Map1. Annotations.RemoveAll

Page 34: MapX 开发培训

Page 34

feature

一个 feature 对象相应于图层中的图元,例如纽约、芝加哥、路易斯安那或高速公路 I-10 。它们在地图上被表示为符号、线或者区域。 Feature 对象的方法允许用户创建和操作独立的 featu

re 对象。如果用户创建了一个独立的 feature 对象,在使用 feature 对象的方法与属性之前,必须将这个独立的对象关联到 Map 对象上。将独立图元与 Map相关联可以使此对象与某一坐标系相联。

Page 35: MapX 开发培训

Page 35

feature

。 属性 描述

CenterX 定义Feature中点的X 坐标CenterY 定义Feature中点的 Y 坐标FeatureID 定义 feature的 ID,每个 feature 在同

一层中只有唯一的 ID. 这是一个整数值.

Length 定义 feature的长度Perimeter Feature 的周长Name 定义 feature 的名字Type 定义 feature 的类型(point, line, etc.)

Page 36: MapX 开发培训

Page 36

FeatureFactory

此对象使用户能够创建新的地图元素,或者通过在已有元素上执行操作来创建元素(例如缓冲区)。 创建一个地图元素有两个重要的步骤。首先是创建点集,对象将由此来创建。使用一个点集类似于“连点游戏”。如果只有一个点,只能创建一个符号对象。如果有两个点,可以创建一条直线。如果有三个或更多的点,就或者可以创建一条折线(由多个段组成的线,但仍被当作一个元素),或者可以创建一个区域(有封闭的边界)。样式在设置新对象的 Type 属性时决定。

Page 37: MapX 开发培训

Page 37

FeatureFactory

Dim f As MapXLib.Feature Dim p As New MapXLib.Point ' 使用地图当前的中心作为点坐标 p.Set Map1.CenterX, Map1.CenterY ' 创建文本图元并将其添加到图层 1 Set f = Map1.Layers(1).AddFeature(Map1.FeatureFactory.CreateText(p,

"Some Text"))

Page 38: MapX 开发培训

Page 38

地图查询 返回到选择集 Selection,高亮显示 SelectAll

SelectById SelectByPoint SelectByRadiusSelectByrectangle SelectByRegion

返回图元集合 Features SearchWithDistance SearchWithinFeature SearchWithinRegtangle

Page 39: MapX 开发培训

Page 39

Selections

Feature 对象的集合,由选择动作产生 自动高亮 每层都有 selection

Page 40: MapX 开发培训

Page 40

属性查询 Layer 对象的 Search 方法, where子句 例如 ftrs=layer.search(“Character_Name like ”“%市”“” ) ftrs=layer.search(“Area(obj)>10000000”) Find查找对象 SearchEx方法 返回 FindResult 对象

Page 41: MapX 开发培训

Page 41

Find

用于在地图上定位 feature, 前提是被操作的图层必须先有被索引的字段 FindFeature:返回 find 对象的 search 方法的结果。 findRC: result codes返回 find 的结果。

Page 42: MapX 开发培训

Page 42

属性数据读写 设置 Layer 对象的 keyfield 属性确定字段 设置 feature 对象的 keyvalue 属性读取 /设置值,更改后调用 update 方法 . 用 dataset 对象的 value(i,j)属性读取值

pop=dataset.value(10,9) Rowvalues 集合 ,Rowvalue 对象,按行读取,要求将图层加入数据集 [RowValues=]OBJECT.RowValues(Row)

Page 43: MapX 开发培训

Page 43

数据绑定 DataSets 可以把数据与地图进行绑定。 例如,一个 MSAccess 数据库存放各县的销售数据,一个Lotus Notes 数据库存放所有销售人员的数据,你可以将两个数据库中的数据与地图进行绑定,在地图上发现数据中隐含的销售数量或突出显示两个数据库中数据的相互关系。 数据绑定是将数据源中的数据加入 MapX 的过程,它将外部数据与地图联系起来。在 MapX 中,这些数据是通过 DataSet 对象来表示的。 Dataset 对象则由数据绑定而产生。

Page 44: MapX 开发培训

Page 44

数据绑定 DataBinding

DAO

Other Sources

ODBC

NOTES

Page 45: MapX 开发培训

Page 45

如何绑定数据 datasets.add 方法 DataSets.Add ( Type, SourceData, [Name], [Geofield], [SecondaryGeofield], [BindLayer], [Fields], [Dynamic] ) 在map 中以 feature 来显示 在图层中增加字段

对于 BindLayermiBindLayerTypeNormal =0 -miBindLayerTypeXY = 1 -miBindLayerTypePointRef=2

Page 46: MapX 开发培训

Page 46

Type Dataset 的类型

SourceData 对数据源的引用

Name Dataset 的名称 缺省为 DatasetN

Geofield 列的名称或序号,包含地理信息, 缺省时 Geodictionary

SecondaryGeofield BindLayer

图层名或 bindlayer 对象,缺省时, Geodictionary Fields

所要的列, aggregation function ,缺省时, All field Dynamic 是否和数据进行动态绑定

Page 47: MapX 开发培训

Page 47

DataSet 类型常量列表DataSet Type Constants

miDataSetDAO DAO数据访问对象miDataSetODBC ODBC DatabasemiDataSetUnbound MapX 从控件容器获取数据miDataSetGlobalHandle Tab 制表符为边界的数据块miDataSetOLEData OLE 数据源miDataSetLayer MapInfo TablemiDataSetNotesQuery Lotus Notes 查询miDataSetNotesView Lotus Notes 视图miDataSetDelphi Delphi Nature-BDE数据项miDataSetSafeArray

Visual Basic 数据控制

Visual Basic 远程数据控制

自定义据资源

Page 48: MapX 开发培训

Page 48

DataSource

• DataSource 实际上是一个 OLE接口。 MapX 通过接口直接从数据源访问数据。数据的并没有真正传给 DataSets.Add 。 • 下面是详细的几种数据资源 (注意 : 这些并不是全部的类型 ):• .miDataSetDAO – DAO 数据集 (Data Access Object Recordset).

DataSets.Add 的 DataSource必须是一个 DAO 数据集对象。 你可以从 Visual Basic 的数据控件, Access窗体,或是 Visual Basic, Access, C++ 中创建 一个数据集。

• .miDataSetODBC – ODBC 数据连接 (Open DataBase Connectivity data source). MapX 可以通过 ODBC 从任意 ODBC 数据源中获取数据。你需要指定连接字符串,数据源名称,使用 ODBCQueryInfo执行的 SQL查询语句 (ODBCQueryInfo 包含连接 ODBC 数据源的信息 ) 。

• miDataSetLayer - 如果 Dataset 的类型是 miDataSetLayer , 那么参考MapInfo Table 表中的字段创建 Dataset ,则 SoureData参数项必须是一个 Layer 对象。

Page 49: MapX 开发培训

Page 49

GeoField

• Geofield 是 DataSets.Add 方法的参数,用来为数据源指定包含有地理信息的数据列。但是如果没有指定列, DataSets.Add确定可以自动指定数据地理信息的数据列。• 如果要创建新的点图层则 GeoField 列必须是唯一的 (BindLayer.LayerType 是 miBindLayerTypeXY 或 miBindLayerTypePointRef) 。 GeoField 列将作为新的点层中的图元的名称。如果值不唯一则将在遇到第一条记录时创建一个新的点,然后值重复的行的数据将作为聚合。• 为使 MapX将数据绑定到地图图层,需要完成一些设置。1. 对地图图层中含有的地理信息的数据列要做索引。2. 在 GeoDictionary 中必须注册,图层以及其主要数据列。

Page 50: MapX 开发培训

Page 50

其他参数的说明• Secondary Geofield :当主要数据列的数据值并不唯一的情况下,绑定数据时需要设置 Secondary GeoField参数。例如, States 图层中有多个洲的名字是“ Warren” 或 “ Washington” 。因此,就需要更多的信息来解决潜在数据冲突。这第二个 geofield 被用来确定匹配的唯一性。这个概念类似于创建 field 对象的精细查找边界。• Dynamic :布尔型的参数决定是否动态绑定数据,可选参数项,如果省略,默认为 False ,说明数据绑定方式是静态的 (指当数据库打开时 MapX将拷贝需要的所有数据 ) 。如果设置为 True , MapX访问数据将是实时的,只获取需要的数据 (例如当作标准时 ) 。• Fields :这是一个 Fields 集合对象,是包含 Fields 对象的集合。 Field对象用来表示从数据源中引入的字段,并且当数据源中有多条记录对应某一地图图元时使用聚合函数来计算数据值。这是一个可选参数,如果没有指定,那么所有列都将被加入,如果多条数据记录对应一个图元则数据值取和。

Page 51: MapX 开发培训

Page 51

BindLayer

BindLayer 参数用来指定将采用何种类型的绑定。当数据源中的指定列参与数据绑定时, BindLayer 对象被引入。当用 Bindlayer绑定时, geofields 值必须是唯一的。若要把数据放到地图上,并且将数据绑定到一个点图层,则要用到 BindLayer 对象。使用 Bindlayer 对象需满足以下两点要求:• .经纬度数据• . 现有图层的参考字段,例如:邮政编码、城市名等。

BindLayerObject.LayerName := ‘testLyr';BindLayerObject.RefColumn1 := 'x' ;BindLayerObject.RefColumn2 := 'y';

Page 52: MapX 开发培训

Page 52

BindLayer BindLayer Object

属性 描述 值LayerType 指定数据绑定的图层类型 MiBindLayerTypeNormal

MiBindLayerTypeXYMiBindLayerTypePointRef

CoordSys 指定所创建的图层的坐标系 A CoordSys Object

FileSpec 文件名称及路径 A String value

KeyLength 正整数值, 指定字段值的大小 A numeric value (1-254)

LayerName 如果 LayerType 是 miBindLayerTypeNormal需要指定进行绑定的图层名称;如果 LayerType是 miBindLayerTypeXY 或miBindLayerTypePointRef,将是创建图层的名称

A string value

RefColumn1 LayerType 是 miBindLayerTypeXY则字段包括经度,或 LayerType 是miBindLayerTypePointRef.则字段包括参考数据(例如邮政编码)

A string or integerreferencing a column

RefColumn2 LayerType 是 miBindLayerTypeXY字段包括纬度.

A string or integerreferencing a column

ReferenceLayer

BindLayer.LayerType 是miBindLayerTypePointRef. 指定参考文件名

A string

Page 53: MapX 开发培训

Page 53

ADO Dataset 的 Visual Basic 示例Dim ds As DatasetAdodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" & _ "Data Source=C:\Program Files\MapInfo\MapX 5.0\Data\MapStats.mdb" Adodc1.RecordSource = "Select * from USA" Adodc1.Refresh ' Bring in the data from the database ' 将数据集添加到地图,并从中创建简单主题 Set ds = Map1.Datasets.Add(miDataSetADO, Adodc1.Recordset, "ADOSet", , , "USA") ds.Themes.Add miThemeRanged, "TOTPOP"

Page 54: MapX 开发培训

Page 54

ODBC Dataset 的 Delphi 示例var ds: Dataset; parm: Variant; fields: CMapXFields; begin try parm := CreateOleObject('MapX.ODBCQueryInfo.4'); parm.SqlQuery := 'select * from USA';parm.ConnectString := 'ODBC;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\Program Files\MapInfo\MapX 5.0\Data\MapStats.mdb;';parm.DataSource := '';fields := CoFields.Create; fields.Add('GEOABBR', 'GEOABBR', miAggregationAuto, miTypeString); fields.Add('GEONAME', 'GEONAME', miAggregationAuto, miTypeString); fields.Add('TOTPOP', 'TOTPOP', miAggregationAuto, miTypeNumeric);ds := Map1.Datasets.Add(miDataSetODBC, parm, 'ODBC Dataset',EmptyParam, EmptyParam, 'USA', fields, EmptyParam); ds.Themes.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);

Page 55: MapX 开发培训

Page 55

OCI Dataset 的 Visual Basic 示例 Private Sub Command1_Click() On Error GoTo MapXErr Dim ds As Dataset Dim parm As New OCIQueryInfo parm.SqlQuery = "select * from USA" parm.ConnectString = "SRVR=ontario;UID=mapx;PWD=mapx" ' 添加数据集。 Set ds = Map1.Datasets.Add(miDataSetOCI, parm, "Oracle Dataset") '创建有关数据集的默认主题 ds.Themes.Add Exit Sub MapXErr: MsgBox "Error #" & Err.Number & ": " & Err.Description

Page 56: MapX 开发培训

Page 56

专题地图 专题图是一种可以在地图上用颜色 , 符号的大小和密度等来表达数据趋势的方法。创建专题地图是制图软件的常见用法。 地图专题化是用数据制作专题地图的过程。在这种上下文中 , “专题” 是一个重要的字眼,不仅指颜色编码,也指区域填充、符号填充或是你所用于将数据显示到地图上的专题制作方法。(例如:饼图和直方图)。 图例是专题的关键,描述用于专题图的颜色、符号、符号所代表的含义。 专题化地图使你能够可视化观察及高亮化显示那些难于通过表单方式浏览的数据趋势。

Page 57: MapX 开发培训

Page 57

范围值专题图

Page 58: MapX 开发培训

Page 58

点密度专题图

Page 59: MapX 开发培训

Page 59

独立值专题图

Page 60: MapX 开发培训

Page 60

等级符号专题图

Copyright 1996 MapInfo Corporation. All Rights Reserved.Copyright 1996 MapInfo Corporation. All Rights Reserved.

Sales 97

54

27 5.4

Page 61: MapX 开发培训

Page 61

直方图

Page 62: MapX 开发培训

Page 62

饼图

Page 63: MapX 开发培训

Page 63

多专题地图

Page 64: MapX 开发培训

Page 64

专题图 Themes 集合, Theme 对象 Themes

.Add 方法 Themes.Add [Type], [Field], [Name]

• Type 指定要创建的专题图的类型,也就是 ThemeTypeConstants 。这是一个可选的参数,如果没有指定(或指定为 miThemeAuto ), MapX会根据传递进来的 fields 的数量以及正在显示的专题类型选择一个最佳缺省值。如果MapX 不能选择一个缺省的专题类型,就会产生错误。

• Field 指定域或专题图的域,域可以用名字、索引或者 Field 对象指定。如果使用多个变量创建专题,就使用 field名 , 索引或者 Field 对象的数组传递。这是一个可选的参数,如果没有指定, MapX 就使用 DataSet 的第一个数字域。• Name 指定专题地图的名字。这是一个字符串参数、可选的参数。如果没有指定, MapX 就产生一个象 StatesBySa

les 的名字

Page 65: MapX 开发培训

Page 65

专题类型常数

MiThemeRanged 范围值专题

MiThemeBarChart 直方图专题

MiThemePieChart 饼图专题

MiThemeGradSymbol 等级符号专题

MiThemeDotDensity 点密度专题

MiThemeIndividualValue 独立值专题

MiThemeAuto MapX最佳猜测专题

Page 66: MapX 开发培训

Page 66

操作专题图 所有的专题属性应在运行时调整。有以下两种方式: 1.Theme 对象方法 2.修改 ThemeProperties 对象

Page 67: MapX 开发培训

Page 67

谢谢!