1、MapObjectsMapObjects 开发基础开发基础主要内容主要内容一一MapInfoMapInfo介绍介绍二二MapInfoMapInfo数据模型数据模型三三MapBasicMapBasic二次开发二次开发四四MapInfoMapInfo组件组件MapXMapX五五MapXMapX开发实践开发实践1、MapInfo介绍介绍MapInfo Overview MapInfo Professional是一套强大的基于Windows平台的地理信息系统软件。使用MapInfo Professional,商业分析专家和GIS专家可以方便的将数据和地理信息的关系直观的展现。MapInfo Profe
2、ssional 6.5版为新老用户提供了在数据维护、可视化、数据展现、输出和可用性方面的增强。MapInfo公司将MapInfo的市场定位总结为一个等式: MapInfo= Mapping+InformationMapInfo= Mapping+Information MapInfo Overview中小型中小型GIS平台平台MapInfo Overview MapInfo 中国办事处中国办事处 北京北京 青鸟商务代理商青鸟商务代理商 电信,政府,商务 北京,上海,广州 地区代理商地区代理商 上海数字位图信息科技有限公司 广州昱图计算机技术有限公司 四川太平洋电子科技发展有限公司(成都)陕西高
3、图科技发展有限公司(西安) 基于位置的情报基于位置的情报 扩展的市场扩展的市场 企业级 特定市场 商务流程 技术能力MapInfo 所能提供的:所能提供的: 合成的能力 平台和数据 行业解决方案 位置基础MapInfo OverviewMapInfo OverviewMapInfo ProfessionalMapInfo OverviewMapInfo Professional + MapBasicMapBasic为为Professional开发提供的内嵌开发语言。开发提供的内嵌开发语言。MapBasic编程语言可创建定制化的地图应用、增加编程语言可创建定制化的地图应用、增加MapInfoPr
4、ofessional的功能、开发可重复使用的工具、把的功能、开发可重复使用的工具、把MapInfoProfessional整合到其他应用中。整合到其他应用中。 MapInfo OverviewMapXMapInfo OverviewMapXtreme2005MapXtreme2005完全基于微软的完全基于微软的.NET架构开发的架构开发的GIS开发引开发引擎产品,可以使用户基于同一模型开发出擎产品,可以使用户基于同一模型开发出B/S和和C/S的应用。的应用。MapXtreme2005产品具体包括数据处理和地理分析、地图样产品具体包括数据处理和地理分析、地图样式、管理投影和坐标系统、控件和标准工
5、具、性能优化状态保式、管理投影和坐标系统、控件和标准工具、性能优化状态保持、地理编码以及路径分析的客户端支持等持、地理编码以及路径分析的客户端支持等 MapInfo OverviewMapXtreme For JavaMapInfo OverviewMapX MobileMapXMobile是一个可以用在是一个可以用在PocketPC的无线应用地图开发的无线应用地图开发平台,譬如平台,譬如Compaq的的iPAQ和和HP的的Jornada.。它是一个开发。它是一个开发工具,可以让我们的客户开发新的移动地图软件,是用户进行工具,可以让我们的客户开发新的移动地图软件,是用户进行无线地图应用系统开发
6、的理想工具。无线地图应用系统开发的理想工具。 MapInfo OverviewSpatial Ware 2、MapInfo 数据模型数据模型Mif交换格式交换格式.MIF的文件,它主要用来保存空间对象的几何数据;扩展名的文件,它主要用来保存空间对象的几何数据;扩展名为为.MID的文件,它主要用来保存与几何数据相对应的属性数据;的文件,它主要用来保存与几何数据相对应的属性数据; MapInfo提供的交换格式提供的交换格式Tab文件文件 MapInfo采用双数据库存储模式,即其空间数据与属性数据是采用双数据库存储模式,即其空间数据与属性数据是分开来存储的。属性数据存储在关系数据库的若干属性表中,而
7、分开来存储的。属性数据存储在关系数据库的若干属性表中,而空间数据则以空间数据则以MapInfo的自定义格式保存于若干文件中,二者通的自定义格式保存于若干文件中,二者通过一定的索引机制联系起来。为了提高查询和处理效率,过一定的索引机制联系起来。为了提高查询和处理效率,MapInfo采用层次结构对空间数据进行组织,即根据不同的专题采用层次结构对空间数据进行组织,即根据不同的专题将地图分层(图层还可以分成若干图幅),每个图层存储为若干将地图分层(图层还可以分成若干图幅),每个图层存储为若干个基本文件。个基本文件。 (1) 属性数据的表结构文件属性数据的表结构文件.TAB (2) 属性数据文件属性数据
8、文件.DAT (3) 交叉索引文件交叉索引文件.ID (4) 空间数据文件空间数据文件.MAP (5) 索引文件索引文件.IND Tab文件文件(1)属性数据的表结构文件)属性数据的表结构文件.TAB 属性数据表结构文件定义了地图属性数据的表结构,包属性数据表结构文件定义了地图属性数据的表结构,包括字段数、字段名称、字段类型和字段宽度、索引字段及相括字段数、字段名称、字段类型和字段宽度、索引字段及相应图层的一些关键空间信息描述。应图层的一些关键空间信息描述。.TAB文件实际上是一个文文件实际上是一个文本文件,可以在写字板中打开观察其内容。本文件,可以在写字板中打开观察其内容。(2)属性数据文件
9、)属性数据文件.DAT 属性数据文件中存放完整的地图属性数据。在文件头之属性数据文件中存放完整的地图属性数据。在文件头之后,为表结构描述,其后首尾相接地紧跟着各条具体地属性后,为表结构描述,其后首尾相接地紧跟着各条具体地属性数据记录。数据记录。(3)交叉索引文件)交叉索引文件.ID 交叉索引文件记录了地图中每一个空间对象在空间数据交叉索引文件记录了地图中每一个空间对象在空间数据文件(文件(.MAP)中的位置指针。每四个字节构成一个指针。指)中的位置指针。每四个字节构成一个指针。指针排列的顺序与属性数据文件(针排列的顺序与属性数据文件(.DAT)中属性数据记录存放)中属性数据记录存放的顺序一致。
10、交叉索引文件实际上是一个空间对象的定位表。的顺序一致。交叉索引文件实际上是一个空间对象的定位表。Tab文件文件(4)空间数据文件)空间数据文件.MAP具体包含了各地图对象的空间数据。空间数据包括空间对象的具体包含了各地图对象的空间数据。空间数据包括空间对象的几何类型、坐标信息和颜色信息等。另外还描述了与该空间对几何类型、坐标信息和颜色信息等。另外还描述了与该空间对象对应的属性数据记录在属性数据文件(象对应的属性数据记录在属性数据文件(.DAT)中的记录号。)中的记录号。这样,当用户从地图上查询某一地图对象时,就能够方便地查这样,当用户从地图上查询某一地图对象时,就能够方便地查到与之相关的属性信
11、息。到与之相关的属性信息。(5)索引文件)索引文件.IND 索引文件并不是必须的,只有当用户规定了数据库的索引字索引文件并不是必须的,只有当用户规定了数据库的索引字段后段后mapinfo才会自动产生索引文件。索引文件中对应于每个索才会自动产生索引文件。索引文件中对应于每个索引字段都有一个索引表。在每个索引表中,先给出总的数据库记引字段都有一个索引表。在每个索引表中,先给出总的数据库记录数目,然后按照索引顺序给出每条属性数据记录在对应的索引录数目,然后按照索引顺序给出每条属性数据记录在对应的索引字段处的具体属性数据和该记录在属性文件(字段处的具体属性数据和该记录在属性文件(.DAT)及交叉索引)
12、及交叉索引文件(文件(.ID)中的记录号。)中的记录号。WOR工作空间工作空间GST文件文件MapX工作空间工作空间n GeoSet 是一个地图图层及图层属性值的集合。n 一个文本文件,在Geoset Manager中制作。n GeoSet 可以在设计时被指定。如果在运行过程中被指定,原来已安装的图层以及数据库(DataSet)会被删除。然后装入新的GeoSet。如果用户只想删除已装入的图层以及DataSets而不想装入新的GeoSet,用户可以设置一个空的Geoset。n 系统提供的默认GeoSet文件为US.GST。n 类似于Professional中的WorkSpace3、MapBasi
13、c关于关于MapBasicMapInfo提供了一个用户系统开发工具提供了一个用户系统开发工具MapBasic,人们可以,人们可以用用MapBasic来设计、建立符合自己工作特点和要求的纯用户来设计、建立符合自己工作特点和要求的纯用户化的应用系统。作为一种功能强大、易于使用的结构化程序化的应用系统。作为一种功能强大、易于使用的结构化程序设计语言,设计语言,MapBasic提供了提供了380多种函数和命令语句。与传多种函数和命令语句。与传统的统的GIS相比,良好的软件集成环境、面向对象和事件处理相比,良好的软件集成环境、面向对象和事件处理式的编程思想,都是式的编程思想,都是MapBasic的显著特
14、征。的显著特征。必须在必须在MapInfo平台下运行平台下运行关于关于MapBasicMapBasic集成环境集成环境n文本编辑器文本编辑器(Editor):程序的编辑与修改;:程序的编辑与修改;n程序编译器程序编译器(Compiler):程序编译器用于源程序编译,以生成:程序编译器用于源程序编译,以生成可执行程序:可执行程序:n程序链接器程序链接器(Linker):程序链接器用于将若干独立的模块链接成:程序链接器用于将若干独立的模块链接成一个应用程序:一个应用程序:n联机帮助联机帮助(Help):联机帮助则为程序员在线提供:联机帮助则为程序员在线提供MapBasic的每的每条语句或函数的详细
15、说明资料。条语句或函数的详细说明资料。 关于关于MapBasichttp:/ MapX 是一个基于ActiveX(OCX)技术的可编程控件。它使用与MapInfo Professional 一致的地图数据格式,并实现了大多数MapInfo Professional 的功能。 MapX 为开发人员提供了一个快速、易用、功能强大的地图化组件。在VB,Delphi,PowerBuilder,VC 等可视化开发环境中,只需在设计阶段将MapX 控件放入窗体中,并对其进行编程,设置属性或调用方法或相应事件,即可实现数据可视化,专题分析,地理查询,地理编码等丰富的地图信息系统功能。 MapX 定义了一个类
16、体系,以有效的组织图形元素,图层,属性数据等对象。MapX的主要优点的主要优点n MapX易于使用且价格低廉.n MapX能实现Pro 95%以上的功能。n MapX用于实时监控,GPS和监控等。n MapX提供面向对象开发,提供更为广阔的开发空间n MapX为WEBGIS的开发打下基础。MapX的的缺点缺点n 数字化仪输入 n 排版输出 n PRO工具管理器中所有的工具,如数据转换n MapX不支持统计图MapX开发方式开发方式MapX支持的数据支持的数据(1) 地图数据:MapInfo 格式(Tab、Gst)(2) 远程空间数据:Oracle8i, MapInfo SpatialWare(
17、3) 其它远程数据:ADO,DAO,ODBCMapX下的两个程序下的两个程序GeosetGeoset Manager Manager和和GeoDictionaryGeoDictionaryn Geoset Manager: 如果你确定你得到的地图,你就可以将它保存为一个GeoSet (*.GST) 文件。当你打开这个GeoSet 文件,所有的地图图层和设置都将以保存值返回。使用geosetmanager的时候,所有的.gst文件要放在Program FilesMapInfoMapX 5.0Maps目录下。n GeoDictionary: 用于外部数据与图层的自动绑定,以及创建专题图层。实际上是
18、一个文件包含有数据绑定的信息geodict.dct。MapX主要对象主要对象Map对象对象Map对象对象nAnnotationsnAreaUnitnAutoRedrawnBoundsnCenterXnCenterYnCurrentToolnDataSetnDataSetGeoFieldnDataSetsnDataSetThemenDefaultStylenDisplayCoordSysnDefaultConversionResolutionnExportSelection nFeatureFactory nGeoDictionarynGeosetnGeosetsnGeoSetWidthnhWn
19、dnLayersnMapPaperHeightnMapPaperWidthnMapUnitnMaxSearchTimeMousePointerNumericCoordSys PaperUnitPreferCompactLegendsRotationSelectionStyleTitleTitleTextVersionZoomLayers对象对象Layers对象对象n建新层建新层 Map1.Layers.CreateLayer “Offices”Map1.Layers.CreateLayer “Offices”Layer=Layer=OBJECT.CreateLayerOBJECT.Create
20、Layer (Name , (Name , FileSpecFileSpec , Position , , Position , KeyLengthKeyLength , , CoordSysCoordSys) ) n加入图层加入图层 Map1.Layers.Add “C:MapMap1.Layers.Add “C:MapChina.tabChina.tab”Layer=Layer=OBJECT.AddOBJECT.Add ( (LayerInfoLayerInfo, Position) , Position) Layers对象对象Count获得集合中的图层数量Item从集合中获取图层Boun
21、ds获得集合的地理范围 Layer对象对象n AutoLabeln Namen OverrideStylen Selectable, Editable, Visiblen Stylen ZoomLayer, ZoomMax, ZoomMinn LabelPropertiesLayer对象对象 AddFeature, DeleteFeature BeginAccess, EndAccess Refresh UpdateFeature Search Layer.Pack Layer.SupportsPackFeatures对象对象Features对象对象Feature对象对象属属性性描描述述Cen
22、terX定义 Feature 中点的 X 坐标CenterY定义 Feature 中点的 Y 坐标FeatureID定义 feature 的 ID,每个 feature 在同一层中只有唯一的 ID. 这是一个整数值.Length定义 feature 的长度PerimeterFeature 的周长Name定义 feature 的名字Type定义 feature 的类型(point, line, etc.)FeatureFactory对象对象FeatureFactory 对象的方法使您可以创建新的地图图对象的方法使您可以创建新的地图图元,也可通过对现有图元执行操作(例如缓冲区)来创元,也可通过对现
23、有图元执行操作(例如缓冲区)来创建图元。建图元。 Datasets对象对象n DataSets 可以把数据与地图进行绑定。n 数据绑定是将数据源中的数据加入MapX的过程,它将外部数据与地图联系起来。在MapX中,这些数据是通过DataSet 对象来表示的。Dataset对象则由数据绑定而产生。n 图层的属性数据访问需要通过绑定,建立Layers和Datasets的关系 Datasets对象对象DAOOther SourcesODBCNOTESDatasets对象对象Fields对象对象Theme对象对象n 专题图是一种可以在地图上用颜色, 符号的大小和密度等来表达数据趋势的方法。创建专题地图
24、是制图软件的常见用法。n 地图专题化是用数据制作专题地图的过程。在这种上下文中, “专题” 是一个重要的字眼,不仅指颜色编码,也指区域填充、符号填充或是你所用于将数据显示到地图上的专题制作方法。(例如:饼图和直方图)。n 图例是专题的关键,描述用于专题图的颜色、符号、符号所代表的含义。n 专题化地图使你能够可视化观察及高亮化显示那些难于通过表单方式浏览的数据趋势。属性数据空属性数据空间表达间表达Theme对象对象5、MapX实践实践实践内容实践内容n 3次实习n 地图数据载入及管理n 地图操作(缩放、漫游)地图事件n 地图编辑n 地图查询(属性查询和空间查询)n 简单空间分析n 专题图n 动态图层(GPS监控案例)