MapInfo软件

2024-12-09

MapInfo软件(通用5篇)

MapInfo软件 篇1

摘要:本文基于笔者多年从事CASS内业相关工作经验, 以CASS和MAPINFO之间的数据转换为研究对象, 深度探讨了CASS和MAPINFO的数据存储格式和转换原理, 给出了具体的程序代码, 实验了程序运行效果, 现在已运用于实际的工作中, 解决了数据转换过程中的数据损失和图形数据与属性数据不一致等问题。相信对从事相关工作的同行有着重要的参考价值和借鉴意义。

关键词:CASS,MAPINFO,数据转换

Auto CAD是A U T O D E S K公司的主要数字制图软件, 在图形数据采集和编辑等方面有很强的功能, 在市场开发、软件技术、产品价格等方面比其他数字制图软件有着明显的优势和发展前景。同时A u t o C A D也提供了较强的二次开发功能, 目前很多单位和部门都以它为数据采集和二次开发平台, 南方公司的地形地籍成图软件C A S S是基于A u t o C A D平台开发的G I S前端数据采集系统, 主要应用于地形成图、地籍成图、工程测量应用三大领域, 经过近几年的开发和应用, 该软件在数据采集、数据处理和数据管理等方面功能较强。随着G I S技术的飞速发展, 如何把C A S S的数据转换到G I S数据库中, 是目前C A S S用户关心的问题。本文在分析了CASS和MapInfo数据存储格式特点的基础上, 讨论C A S S和MapInfo间的数据转换方法和过程, 并给出了关键代码。

1 CASS与MapInfo数据存储格式

1.1 AutoCAD的扩展数据及CASS属性数据的存储

在A u t o C A D的图形文件中, 除了保存图形本身的各种数据外, 还可以通过扩展数据和扩展记录来保存用户的数据。扩展数据是由应用程序加入到A u t o C A D对象中的数据, 它遵循系统的规则定义数据, 每一个应用程序都可以对同一个对象加入自己的数据, 再根据各自的申请名来读取这些数据, 使得不同程序注册的数据不会混淆。A u t o C A D负责维护这些数据, 但不使用这些数据, 通过使用扩展数据技术, 用户可以将自己的非图形信息保存在图形文件中。

扩展数据由一个或多个1 0 0 1组码组成, 每个1 0 0 1组码包括唯一的程序申请名, 每个申请名定义了自身数据类型、含义和组织结构。扩展数据的组码范围从1 0 0 0~1 0 7 1, 下面列出用于扩展数据的组码以及组码的数据类型, 应用程序并非一定要使用全部组码。

1000组码:字符串 (长度不超过255个字符) 。

1001组码:申请名 (最长31个字符) 。

1040组码:一个实数。

C A S S就是通过扩展数据来记录编码及其他的一些属性数据。

1.2 MapInfo的文件格式

MapInfo是目前在国内外较流行的GIS平台之一, 广泛应用于各行各业, 能够与它进行数据交换的平台也较多, 主要通过m i f、m i d文件类型进行数据交换, 这两个类型文件是一一对应的。m i f格式文件能够完全描述一个M a p I n f o表, 并存储图形的坐标系、属性数据的字段结构、图形对象的坐标、颜色、线型、填充风格 (包括填充类型、填充背景色、填充前景色) 等;m i d格式文件按m i f字段定义顺序存储着每个图形对象所对应的属性数据。

传统MapInfo和AutoCAD数据格式转换是通过d x f进行交换, 但d x f文件无法把属性一起导入, 导致数据丢失或错误, 所以采用m i f、m i d类型文件实现M a p I n f o和A u t o C A D数据交换是比较可行的方法, 不仅保证了数据的完整性, 还保证了属性数据与图形数据的一致性。

2 转换原理

2.1 ObjectARX应用程序

O b j e c t A R X应用程序是动态链接库 (DLL) , 可以和AutoCAD共享地址空间, 直接调用A u t o 2 C A D的内部函数, 在O b j e c t A R X应用程序中定义的命令与A u t o C A D的内部命令运行方式相同, 而在O b j e c t A R X应用程序中创建的实体对象也和A u t o C A D中创建的实体对象没有区别。

使用O b j e c t A R X的用户可以完成各种开发工作, 例如: (1) 直接访问AutoCAD的图形数据库; (2) 和A u t o C A D编辑器进行交互; (3) 使用MFC创建标准的W indows用户界面; (4) 支持A u t o C A D的多文档接口 (MDI) 。

2.2 CASS数据的分类

CASS中的图形可分为以下几大类:直线、复合线、2维多义线、圆、文本、多行文本 (很少用) 、块等, 对应这些分类, 把块转换为MapInfo中的point, 直线、复合线、2维多义线转换为p o l y l i n e, 封闭的复合线转换为region。

2.3 实现过程

根据上述原理, 实现数据转换的流程如下。

第一步:打开图形文件;第二步:生成gridmif, gridmid等文件, 并填充完各mif文件的文件头;第三步:读取对象的数目c o u n t, i=0, icount则转第八步;第四步:得到它的实体类型 (C A D中) , 读取相应的图形和属性值, 根据C A S S编码查找对应的;第五步:M A P I N F O编码和实体类型;第六步:找到相应编码;第七步:根据实体类型, 写入相应的MIF和MID文件中;第七步:i=i+1;第八步::关闭所有文件, 退出程序。

3 实现数据转换的关键程序代码

3.1 判断实体的类型

3.2 实体类别后的转换

4 程序运行效果

将C A S S数据运用本文的程序转入MapInfo后, 运行结果表明本文的程序使CASS中的图形数据和属性数据转入M a p I n f o后能满足入库的要求, 达到了转换目的。

5 结语

本文采用程序模块来实现C A S S和MapInfo之间的数据转换, 经过大量的实践和广泛应用, 程序运行结果较好, 已运用于实际的工作中, 解决了数据转换过程中的数据损失和图形数据与属性数据不一致等问题。

参考文献

[1]李景文, 唐诗华.基于Web GIS的城市住宅小区物业管理系统方案设计[J].桂林工学院学报, 2002, 22 (3) :312~315.

MapInfo软件 篇2

摘要:本文以MapInfo在创建专题地图方面的应用为主要内容,详细介绍了MapInfo7.0版本中专题地图的类型、专题地图的创建、修改及保存的过程。之后以建立全国编组站能力负荷专题地图为实例,具体说明每一步的操作步骤。最后对MapInfo在相关方向的应用进行展望。关键词: MapInfo,专题地图

MapInfo是由美国MapInfo公司推出的一个地理信息系统平台软件。其市场定位总结为—个等式“MapInfo=Mapping Information”,即:地图对象+信息(属性)数据,因此又称“桌面地图信息系统”。MapInfo采用了地图(Map)、浏览表格(Browser)及图表(Graph)等三种不同的方式对数据库内容进行描述,并实现了这三种视图的动态链接。在MapInfo中,专题地图是用来分析和表现数据的一种强有力的方式。利用专题地图,可根据数据表中特定的值赋给地图对象以颜色、图案和符号,从而把各种属性数据图形化,很直观、形象地显示在地图上。创建专题地图是根据某个特定专题变量对地图进行渲染的过程。这里的渲染是一个非常综合的术语、它不仅指色彩的渲染,而且还包括所用的填充方案,符号以及用于显示数据的专题方法。专题地图的类型

图1.1 专题地图的类型 专题地图的类型共以下6种:

(1)范围地图:按所设定的范围显示数据,这些范围用图案或颜色加以渲染。

(2)直方图:将表中各记录的专题变量以直方图显示。(3)饼图:将表中各记录的专题变量以饼图显示。

(4)等级符号地图:为表中每条记录显示一个符号,符号大小与数据值成正比。

(5)点密度地图:将数据值以点的方式显示在地图中,每个点代表一定的数量,各个区域内点的数目和该区域的数据值成正比。

(6)独立值地图:按独立数值渲染地图。

(7)格网地图:将数据以格网的形式以颜色渲染地图。

饼图和直方图专题地图是多变量的,其余四类专题地图是单变量的。专题地图的创建过程

2.1 单变量专题地图

范围、等级符号、点密度、独立值和格网专题地图只考察一个变量。为这些类型的地图所显示对话框要求仅选择一张表和一个半段或表达式。

1、从“表”下拉列表中选择表,该下拉列表显示已被地图读取到当前地图窗口的表,选择要在其上建立地图的表。

2、从“字段”下拉列表中选择字段,该下拉列表显示从“表”下拉列表中选中的表的所有数值字段,选择包含数据值的字段或表达式。选择“忽略0和空白”框以忽略表中的零值或空白值。由于是基于一张表中的一个字段创建专题地图,该字段中的零或空白值将导致整条记录被忽略。

3、选择“上一步” 以返回到前面的专题对话框。

4、选择“下一步”继续步骤3“自定义专题地图”。

图2.1 单变量专题地图

2.2 多变量专题地图

饼图和直方图专题地图可以一次分析多个变量: 对i舌框中.选择要用作变量的字段或表达式。并将它们排成最适合十分析的顺序。可以在一幅饼图和直方图专题地图中使用多达8个变量。

1、从“表”下拉列表中选择要在其上建立地图的表。该下拉列表显示在活动地图窗口中已被地图化的表。“表中的字段”显示从“表”列中选中的表的所有数值字段。

2、选择或创建包含数据值的字段或表达式。“饼图/直方图中的字段”指出已为饼图或直方图专题地图选择的字段或表达式。“饼图/直方图中的字段”列表的变量顺序是变量显示在图例中的顺序。对于直方图专题地图而言,变量显示在图例中的顺序是直方条在地图上从左到右显示的顺序。对饼图而青.图例的第一个变量对应卡在“自定义饼图样式”对话框中指定的角度处开始的第一个饼扇。要显示“自定义饼图样式”对话框,单击“创建专题地图步骤3”对话框中的“样式”。

3、(3)单击“向上”,在“饼图/直方图中的字段”列表中将选中的字段或表达式向上移动一个位置。当选中的项是列表中第一项时,“向上”不可用。

4、(4)单击“向下”,在“饼图/直方图中的字段”列表中将选中的字段或表达式向下移动一个位置。当选中的项是列表中最后一项时,“向下”不可用。

5、单击箭头向右的按钮。将选中的字段从“表中的字段”列表中移到“饼图/直方图中的字段”列表中。

6、单击箭头向左的按钮。将“饼图/直方图中的字段”移到“表中的字段”列表中。

7、选择“下一步”按钮以继续进行步骤3。

图2.2 多变量专题地图

2.3 自定义专题地图

最后一个步骤允许自定义专题地图,或基于缺省设置创建地图。也可以在显示地图之前预览地图的图例并改变图例的标注顺序。“升序”和“降序”决定了范围标注和数值标注及字段标注在图例中的显示顺序。如果创建范围地图,用户指定的顺序也显示在“自定义范围样式”对话框中。

1、选择升序从低值向高值显示范围。

2、选择降序从高值向低值显示范围。

使用在“自定义”分组框中的按钮可以改变专题地图的某些方面的缺省设置。如颜色、大小、符号、图例设计等。然后单击“确定”,创建完成一幅专题地图。

图2.3 自定义专题地图 3 专题地图的修改和保存

3.1 修改

1、使包含专题地图的窗口成为活动窗口。

2、选择“地图—修改专题地图”出现“修改专题地图”对话框。

3、在“修改专题地图”对话框中,以下拉列表中选择一个专题图层并选择“修改”。使用该对话框可以改变地图和图例。

4、选择“确定”,地图将按照你做的修改而改变。

3.2 保存

创建好了一副专题地图以后,若要保存该专题地图,以便以后继续使用,则必须将它保存到一个工作空间。若在关闭表或者地图窗之前未将其保存至一个工作空间,MapInfo将显示“保存工作空间对象”对话框并提示应该如何做,具体作法:选择“文件—保存工作空间”对话框,保存自己创建好的专题地图。4 应用实例

本例将创建一个全国编组站能力负荷专题地图。

首先导入地图,将创建好的编组站点图层文件和铁路网线图层文件同时打开。

图4.1 打开文件 图4.2 初始地图

由于基础的图层文件相关的表格并没有我们需要的数据格式,因此需要对图层重新建立数据表格。编组站能力负荷图主要是反映站点的负荷情况,不需要路网的属性,因此选择菜单中的“表”—“维护”,修改表的字段分别为“序号”(整型)、“站名”(字符型)、“有调”(浮点型)、“无调”(浮点型)、“无调比”(字符型,因为需要输入百分号)。然后在点图层输入每个编组站的数据:站名、有调车数、无调车数、无调比例。

图4.3 数据表格

开始创建专题地图。选择菜单中的“地图”—“创建专题地图”。在弹出的菜单中选择“饼图”—“缺省饼图”。在“创建专题地图步骤2/3”中,选择“表”:“负荷_点”,在下面的“字段”选项中,选中“有调”和“无调”,分别点“增加”按钮,其将显示在“用于饼图/直方图的字段”一栏。点击“下一步”。

图4.4 步骤2/3 图4.5 图例

在“创建专题地图步骤3/3”中,修改有调和无调的样式。将有调的颜色由红色改为蓝色,无调则保持默认的绿色不变,点击确定。

点击菜单中的“选项”—“显示专题图例窗口”,可将图例在地图上显示出来。

最后,修改线路的形状为铁路的黑白相间线,设置标注的字体及颜色,专题地图便制作完成,如图4.6所示。展望

利用MapInfo强大的专题地图功能还可以制作多种线路负荷示意图,如用线条的颜色代表流量的级别,过大的流量将增大线路的负荷,可用醒目的颜色将其标出,方便管理人员及时发现、处理,如图4.7。由于MapInfo的专题地图还没有双向流量的显示功能,所以无法制作铁路上下行货流的专题地图,不过随着科技的进步,人们认识水平的提高,未来一定能实现这个功能。

MapInfo软件 篇3

地理信息系统管理的对象是空间数据,它和一般的管理信息系统有着许多不同之处。但共同之处都是一个信息系统,都是一个基于数据库的问答系统,因此查询在其中占有很重要的地位。MapInfo是美国MapInfo公司推出的一个地理信息系统软件。由于其简单易学、功能较强、二次开发能力强且可以与普通的关系数据库连接,价位较低,在我国市场上比较流行。

1 MapInfo提供的查询方法

1.1 信息工具

在MapInfo中,地图数据库是按表组织的,一个表就是一个地图数据库,它主要有两种表现形式:地图窗口、浏览窗口。在地图窗口中我们看到的是几何实体(包括点、线、面)和注记,在浏览窗口中我们看到的是一个二维表格,有行和列组成。每一行就是关系数据库的一条记录,对应着地图窗口中的一个几何实体。每一列是一个字段,对应着几何实体的一个属性。

在多数情况下我们使用的是地图窗口,看到的是一个个的地理实体,在观察地理实体的时候,当想得到它的属性信息时,我们可以应用信息工具进行查询,如图一所示。

在地图窗口中,一个表就是一个图层,在图层控制对象框中,图层有可选择和不可选择的设定,只有当图层处于可选择状态时,信息工具才能查询实体的属性信息。另外图层还有可编辑和不可编辑的设定,当图层处于可编辑状态时,可直接利用信息工具对地理实体属性信息进行编辑。信息工具不但显示地理实体的属性信息,同时还显示其所在图层。如果点击位置有不同层的实体叠加,则同时显示各个图层,然后让用户选择其欲访问的图层。

1.2 双击查询对象

信息工具查询的是实体的属性信息,而通过双击地理实体可以查询到它几何特征方面的一些信息,如面积、长度、线段数目、边界、边界中心等。当被双击的实体所在图层可编辑时,我们还可以通过弹出的对话框对实体的样式进行编辑。

1.3 一般查询

在MapInfo环境下,查询又被称作选择,就是从一个实体集合中选择符合指定条件的一个或多个实体,被选择出的实体放在一个叫selection的临时表中。实现一般的查询可选择“查询”主菜单中的“选择”子菜单,通过填写弹出的对话框来实现。对话框中有一项叫“满足条件”,通过填写该项可实现诸如面积大于多少、长度小于多少,哪些顾客居住在北京等查询。

1.4 SQL查询

实现SQL查询可选择“查询”主菜单中的“SQL选择”子菜单来实现,它和一般查询的主要区别在于:一般查询一次只能操作一个表(一个数据库),而SQL查询可同时操作多个表(多个数据库),并在存在于不同表的实体间进行运算。如一个名叫countries的表存储了各国的地理范围,一个名叫roads的表存储各条道路,我们就可以通过SQL选择来查询某个国家内共有多少条道路。

1.5 图数互查

通过信息工具可得到地理实体的属性信息,有时我们在浏览窗口中,看到一条实体记录,同时想观察它所对应的几何图形,这个要求可通过“查询”主菜单中的“查找选中部分”子菜单来实现。首先在浏览窗口选中某条记录,然后点击“查找选中部分”,相对应的图形便显示在窗口的中心。

2 Maplnfo中的复杂查询

2.1 复杂查询举例

实现查询是地理信息系统的一项基本而重要的功能,MapInfo作为一个地理信息系统平台,提供了较为强大的查询功能,大部分查询要求通过简单的操作便可以实现。但在实际的地理信息系统应用中,我们常常需要进行一些复杂的查询,利用MapInfo提供的基本查询功能可以完成,但很麻烦,有时甚至不能完成。如:①某市进行土地利用总体规划时,规划者常常需要知道在某一范围内,包含各县、各乡、各村的土地分别是多少,各类土地(耕地、园地、林地、建设用地等)分别又是多少,这种查询在土地规划中用得很多,而且需要尽快得到结果。作者将上述查询称为范围查询;②某范围内高速公路的长度是多少;③某地区内有多少个加汕站;④离当前位置最近的消火栓的位置在何处。

2.2 MapInfo提供的基本空间运算

在M apInfo环境下编程要充分了解MapInfo的二次开发工具Mapbasic提供的基本空间运算函数,其函数语句及功能见表一。

在具体应用中,根据实际需要,综合运用Map basic提供的函数和语句,便可实现各类复杂的查询功能。

2.3 复杂查询的实现思路

(1)明确运算对象。要实现复杂查询,我们首先要明确涉及到的地理实体。如我们想知道某市范围内高速公路的长度,就要涉及该市的行政范围(一个面)及其所在图层,以及高速公路所在图层。

(2)构造所需运算。明确了运算对象,然后是在运算对象之间选择适当的函数。如某市范围内高速公路的长度就涉及到了within函数。

(3)生成选择集。在实际编程中,由于涉及的运算对象有多个,就要用到判断、循环等程序结构,结合所采用的运算方法,生成我们所需要的选择集,也就是我们的初步查询结果。

(4)得到查询结果。上步得到的选择集是MapInfo的一个临时库,对该临时库再进一步操作(如使用maximum等函数),便最终得到需要的查询结果。

3 结束语

本文分析了MapInfo环境下实现查询的一些方法。对简单的查询,可直接利用MapInfo提供的基本功能来实现;对复杂的查询,可利用Map basic编制程序来实现。MapInfo基本能满足平面上的地理查询功能,随着版本的更新,MapInfo将提供越来越强大的查询功能。

参考文献

[1]黄杏元等.地理信息系统概论[M].北京:高等教育出版社,2001.

[2]汤国安等.地理信息系统[M].北京:科学出版社,2000.

MapInfo软件 篇4

1 MapInfo与VB简介

MapInfo地理信息系统平台作为一个图形-文字信息完善结合的软件工具, 能将所需要的信息资料形象、直观地与地理图形紧密地联结起来, 能提供大量常用的分析、查询功能, 能将结果以图形或表格的方式显示出来。

Visual Basic程序设计语言简单易学, 其编程采用了面向对象, 事件驱动的编程机制, 用以程序巧妙地将Windows编程的复杂性封装起来, 所见即所得的可视界面设计方法。

通过OLE自动化实现MapInfo与VB的集成二次开发的关键技术如下:

1.1 VB与MapInfo建立与断开连接

首先, 在模块中定义一个全局对象 (object) 变量, 用CreateObject函数创建OLE自动化对象MapInfo.Application, 并用Set语句将返回值赋给该刘象的引用变量, 启动MapInfo的语句如下:

Set MapInfo=CreateObject ("MapInfo.Application")

启动后的MapInfo实际上在后台运行。

程序结束时, 要释放MapInfo及相关资源, 通过Set MapInfo=Nothing使VB与MapInfo断开连接。

1.2 向MapInfo发送命令

启动MapInfo后, 构造表示MapBasic语句的字符串, 并使用DO方法发送这个字符串。如想让MapInfo执行MapBasic的Open Table语句, 如下:

MapInfo.DO"Open Table""建筑物.tab""interactive"

1.3 调用MapInfo中的菜单、工具条等功能

使用MapInfo的RunMenuCommand方法, 即可创建MapInfo的标准工具按钮。如实现图形选择代码:MapInfo.RunMenuCommand 1701

将MapInfo中的Ruler、Info、Legend、Statistics和Message等无模式窗口用于自己的系统时, 需再生这些窗口。使用Set Window…Parent语句。以Ruler窗口为例, 代码如下:

(4) 建立客户自动化对象触发CallBack

基于OLE自动化开发的难点在于所谓的CallBack, MapInfo服务器对客户程序地图窗口的反应叫CallBack。在集成地图应用系统中, 一般采用回调机制从MapInfo获取信息。[2]假如你在地图窗口中移动地图目标, MapInfo能返回信息告诉你地图目标当前的坐标位置, 这就是CallBack功能。如果你想定制自己的地图操作工具或菜单命令, 你必须依靠CallBack。使用回叫机制, 在下列情况下MapInfo向客户程序发送信息:

(1) 使用自定义工具与MapInfo交互。例如, 在地图窗口中点击鼠标, MapInfo回叫客户程序, 传送点击鼠标位置的X, Y坐标。

(2) 选择一个菜单命令。

(3) 每当地图窗口发生变化时, MapInfo向客户发送产生变化的窗口标识号。

(4) 状态栏中内容的改变。MapInfo的状态栏在集成地图应用程序中并不自动显示出来, 要显示出来的就采用回叫的方法来获得。

2 系统的总体方案设计

本系统采用GIS的开发软件MapInfo Professional 6.0和Visual Basic 6.0进行集成二次开发, 是一个多平台集成系统。其软件配置如图1所示:

以胜利发电厂房产为例, 开发了基于MapInfo和VB的房地产管理信息系统。其功能如图2所示:

3 系统功能的实现

图形的生成。房地产管理信息系统大部分的图形数据是以校园地图的形式存放在MapInfo的图层中的。因此, 在建立系统之前, 必须先建立校园地图作为底图。

理论上讲, 房地产管理所需的图应该是地籍图和房产图。但胜利发电厂还没有形成自己的地籍图, 也没有数字化的房产图, 考虑到房地产管理信息系统对地图精度要求不高, 故以地形图作为底图。

本系统根据AutoCAD绘制的胜利发电厂图, 采用如下方法录入地图:首先, 删除不必要的图层;然后, 在AutoCAD中通过expert (导出) 功能, 把dwg文件格式的地图转化为R12 dxf文件格式;再把存储为dxf文件格式的校园地图分层导入到MapInfo中, 导入时, 设置投影为miNonEarth, 设置单位为m;并进行绘图润色;最后过OLE自动化技术把所生成的MapInfo地图窗口嵌入到本系统的应用程序中。

图形操作。MapInfo与VB集成二次开发的目的是为了既充分发挥VB面向对象的可视化的优势又充分利用MapInfo的GIS功能, MapInfo具有强大的图形操作功能, 房地产管理信息系统的图形操作功能大部分都是从MapInfo中移植过来的。它包括无限级任意比例的地图缩放, 地图漫游, 各地图图层的单独显示, 各图层的图形编辑, 距离量测, 地图的标识, 3D地图、专题图的生成, 缓冲区分析等。

图属互查。图属互查包括由图形查询属性和由属性查询图形。图形查询属性是在类模块MapSIS中进行, 在类模块MapSIS中定义了函数GetField和HandleToolButton。其中GetField是取指定字段字符串, HandleToolButton是处理工具条命令, 在VB与MapInfo初始化连接时调用该命令。UpdateInfo存放在模块中, 它是将地物信息显示在属性窗口中。

属性查询图形是根据用户选择的图层和输入的地理对象名来获取地物的坐标, 再通过MapInfo.Do方法调用Set Map Center () 函数以该地理对象的质心纵横坐标为地图中心显示在当前窗口, 并利用Set Map Zoom () 函数调整地图比例。

系统管理。系统管理是系统用户的权限管理。出于对系统安全性的考虑, 房地产管理信息系统对系统用户实行权限管理, 其目的一是保护软件所有者的正当权利, 二是防止非法用户对系统数据进行非法访问和非法修改。系统权限类型分为三类:系统管理员、编辑人员和普通用户。系统管理员只有一个, 它是系统唯一的最初的合法用户, 也是系统权限最高者。他具有完全的控制权, 既有权增加或删除系统编辑人员和拥护, 同时可对系统进行各种数据操作。系统管理员和编辑人员的权限区别在于编辑人员没权增加或删除用户;普通用户只能查询数据, 而不能进行增加、删除或更改系统图形数据和属性数据的操作。

结论

本文在OLE自动化技术的基础上, 结合MapBasic和Visual Basic语言的特点, 利用Visual Basic与MapInfo进行集成二次开发, 建立了一个实用的、可扩展的、集成性的房地产管理信息系统, 满足了不同用户的需要。 (1) 本系统在功能结构及界面设计上基本能满足用户的要求。且界面友好, 操作方便。 (2) 系统根据用户的要求进行设计, 具有丰富的图形操作功能, 强大的房产管理功能, 完善的系统维护功能及资料统计和报表功能等。在功能设计过程中, 与用户多次进行交流反馈, 在很大程度上满足了用户的需要。 (3) 系统采用了GIS技术, 克服了传统信息管理系统MIS纯数据处理的缺点, 将数据信息加载在图形上, 实现图形数据与属性数据的同时处理。使用本系统可以大大减轻房产处工作人员的工作量, 提高工作效率, 快速、准确完成房产管理工作, 满足管理者的实际需要。

摘要:本文从房产管理的角度出发, 以胜利发电厂房产为例, 运用GIS的理论方法, 结合MapInfo软件的优势, 采用OLE技术, 以VB6.0为编程语言, 开发一套基于MapInfo软件的面向用户的房地产管理信息系统。本文概述了该系统的相关软件简介、总体设计、数据库设计和系统功能的实现。

关键词:GIS,MapInfo,OLE自动化,数据库,房产管理

参考文献

[1]谭夏梅.基于GIS的华南理工大学公共用房资源管理系统.华南理工大学硕士论文, 2000.

[3]郭薇.基于MAPINFO软件的城市房地产产权管理信息系统的设计.江西科学, 1996 (4) .

MapInfo软件 篇5

关键词:数字地图,OLE,集成开发

1 引言

MapInfo作为一个功能强大的地理信息系统(GIS)开发工具,被广泛应用在统计、测绘、水利、军事、环保等领域。它为用户提供了先进的数据可视化、信息地图化技术,并且提供了集成数字地图开发方式,方便用户在其他应用程序(如Visual C++、Visual Basic、Delphi等)中利用MapInfo的地图元素进行集成数字地图编程开发。

通过在VC++环境下完成MapInfo的集成数字地图开发功能,详细介绍了在集成数字地图环境下应用C++和MFC的编程过程。这种在VC++环境下的集成开发方式极大地发挥了VC++和MapInfo两种应用软件的优点,为数字地图信息系统的应用提供了广阔的平台。

2 开发环境

目前计算机技术发展迅速,大多数计算机软硬件性能都能满足应用软件开发要求。一般性的构建编程环境如下:在Windows 2000/XP操作系统下安装Visual C++6.0和MapInfo6.0软件,另外需安装MapBasic开发软件获取mapbasic.h文件,在开发中便于使用;硬件要求必须有足够的内存可以同时运行客户程序和MapInfo,客户程序采用OLE自动控制。

3 开发实例

本软件采用VC++面向对象编程语言实现,主要步骤如下:

(1)创建框架程序,实现OLE自动化客户支持。

1)启动Visual C++,利用MFC AppWizard应用程序向导创建一个单(多)文档应用程序projectname。创建过程中各选项可保留默认选择,创建完成后按如下步骤在程序中加入自动化支持代码:

(1)在stdafx.h中原有#include后加入代码:

2)利用MFC添加MapInfo支持类,为该类创建一个对象,并获取存放当前可执行文件的完全路径。

(1)选择“View”->“ClassWizard”菜单,再选择“Add Class”标签下的“From a type library”,弹出“import a type library”对话框,在查找范围选项里打开MapInfo安装路径下的“professional”文件夹下的“mapinfow.tlb”文件,单击“OK”按钮确定所选中的类,这样创建的类将允许通过OLE自动界面访问MapInfo。

(2)打开projectname.cpp文件,添加如下代码:

(3)为满足程序通用性,先将mapbasic.h文件拷贝到工程文件夹下,打开mapinfow.h文件,在该文件尾部加上如下代码:

此时,已经成功添加了MapInfo,并可访问OLE自动化对象。

(2)创建含有MapInfo数字地图元素的子窗口,获取该子窗口标识及句柄,实现应用程序与该子窗口的交互。

1)在类视图头文件(projectnameView.h)中加入成员变量:

2)在工程debug文件夹下创建map文件夹,将待装入的数字地图文件(假设文件名为ditu)存放在其中,在类视图实现文件(projectnameView.cpp)中添加如下代码:

(3)在OnInitialUpdate方法中,装入数字地图文件,并获得其标识及句柄。

(3)添加Mapinfo的数字地图编辑工具,这里添加“选择”、“拖动”、“放大”、“缩小”4个工具。

1)创建四个菜单命令项:Selector、Grabber、Zoom-In、Zoom-Out。定义它们的ID号为ID_TOOLS_SELECTOR、ID_TOOLS_RECENTER、ID_TOOLS_EXPAND和ID_TOOLS_SHRINK。对于每个工具命令,在MapBasic.h中有相应的状态定义标识M_TOOLS_SELECTOR、M_TOOLS_RECENTER、M_TOOLS_EXPAND和M_TOOLS_SHRINK。

2)为跟踪当前选择的每个工具,在CprojectnameView中定义一个私有成员变量:

int m_eMouseMode;

3)在构造器中初始化该变量,将数字地图工具的初始状态定义为“选择”。

m_eMouseMode=M_TOOLS_SELECTOR;

4)利用ClassView向导为每个工具添加COMMAND和UPDATE_COMMAND_UI函数,下面以Selector工具为例进行添加,其他类似。

(4)编译并运行程序。成功之后MapInfo在VC++环境下的集成开发平台就搭建好了,用户可以根据自己的需要添加各种算法实现数字地图应用功能,如路径规划、地理信息查询等。

如图1所示是一个路径规划的例子,为其添加了路径规划按钮G和保存按钮S,在路径规划按钮响应函数中添加路径规划算法。这里以北京到呼和浩特的飞机航线为例,规划好的路径可以通过保存按钮保存成Mapinfo数字地图文件,方便二次开发和利用。

4 结语

从实用性出发,详细介绍了在应用广泛的VC++环境下完成MapInfo集成数字地图的开发过程,该开发过程通用性较好,为数字地图信息系统应用程序开发提供了良好的平台。用户可以根据实际需要添加各种算法以实现数字地图的应用功能。

参考文献

[1]高强,朱安国.Visual C++高级编程技巧[M].北京:人民邮电出版社,2000.

[2]侯俊杰.深入浅出MFC[M].北京:华中科技大学出版社,2001.

上一篇:国企档案管理论文下一篇:塔里木河流域