VisualBasic6_0在地理信息系统二次开发中的应用

更新时间:2023-05-13 10:42:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

。。

第18卷 第3期         河 北 建 筑 科 技 学 院 学 报         Vol118 No132001年9月     Journal of Hebei Institute of Architectural Science and Technology     Sep12001文章编号:1007-6743(2001)03-0048-04

VisualBasic610在地理信息系统二次开发中的应用

赵连柱,孙亚军,杨国勇

(中国矿业大学资源与地球科学学院,江苏徐州221008)

摘要:,统MapInfo二次开发中的应用,,并给出了开发实例。

关键词:;MapInfo;VB;MapBasic

中图分类号:文献标识码:A

0前言

随着地理信息系统技术的不断发展,各种商品化地理信息系统软件的应用范围越来越广,MapInfo510因其具有强大的图形和属性数据库操作功能、友好的Windows界面,其用户越来越多,但不同专业部门有自己的特殊要求,并且单纯的用MapBasic编程有许多缺点,如复杂工程计算、多用户系统、网络问题等,而编程语言VisualBasic610可以很好的解决这些问题,如何在MapInfo系统的基础上进行二次开发建立应用系统成为MapInfo用户的研究热点。本文阐述了VB610编程语言进行MapInfo系统二次开发的一般步骤和方法。

1VB610对MapInfo系统二次开发的一般步骤

111创建全局对象变量

首先在全局变量声明区声明一对象变量,然后在子程序段用VisualBasic语言的函数CreateObject

()建立一对象变量,在子程序段内建立可以用该对象的Do方法调用MapBasic语句,其运行情况就像在MapBasic窗口中键入MapBasic语句一样。

VB610对MapInfo系统二次开发的步骤如图1所示。

112从MapInfo系统获取数据

要获取MapBasic表达式的值,首先构造一字符串来代表

该表达式,例如,如果要判断MapBasic函数WindowID(0)所

返回的函数值,用VisualBasic语句构造一字符串Msg=

“WindowID(0)”,如果用OLEAutomation方式连接MapInfo,用

对象的Eval方法。

113定位MapInfo窗口

在连接MapInfo系统后,使用MapBasic语句SetApplication

Window,这样MapInfo的对话框和错误消息窗口可以为用户系统所拥有。使用SetNextDocument语句把收稿日期:2001-04-11

作者简介:赵连柱(1976-),男,河北保定人,硕士,GIS地学环境应用.

。。

第3期赵连柱等:VisualBasic610在地理信息系统二次开发中的应用49地图窗口变为VisualBasic程序的子窗体。

114使用OLE控件

VB的OLE控件以对象的方式插入MapInfo地图(如图

2)。

115重定位图例和特殊窗口

MapInfo包括以下几种特殊窗口:

消息窗口和统计窗口,采用MapBasic的“Set

InfoParent”&Form11hWnd。

116定义窗口大小

窗口是否可以被定义大小取决于应用程序及其设置。当使用MDI来定位地图窗口的时候,便可以调用Windows的API函数MoveWindow,使得地图窗口与新窗口的尺寸保持一致。

117集成MapInfo的工具按钮

由于不能对MapInfo的工具栏进行重定位,因此,如果要在客户程序中加入工具栏按钮时,必须用VB创建这些按钮。

如果希望所创建的VB工具按钮能仿效标准的MapInfo按钮,可以使用MapBasic的“RunMenuCom2mand”语句。

118自定义MapInfo快捷菜单

当用鼠标右键单击MapInfo窗口时,MapInfo显示一个快捷菜单如图3。要除去快捷菜单上的一个或多个项目,可以用MapBasic的AlterMenuRemove语句。

 图3 MapInfo窗口的快捷菜单           图4 排污管网管理信息系统启动界面

119终止MapInfo和VB程序

如果用VB的CreateObject()函数来创建一新的MapInfo事件时,当释放其对象变量时,该MapInfo事件得到终止。要释放全局变量时,将其赋值为Nothing,如:SetMapInfo=Nothing

。。

50河 北 建 筑 科 技 学 院 学 报2001年2应用实例

我们用VisualBasic610和MapBasic编程语言开发了排污管网管理信息系统。图4和图5分别为该系统的启动界面和用户界面。

211系统功能简介

1)

、按面积查询、按管线查询、碰装检查等。

2),和井点。。

3),(如图6)。大小窗口配合实现全图快速浏览,小窗口可以为地形图、建筑平面图等,大窗口根据鼠标点击位置显示其附近的管网分布状况。

4)按规定报表格式输出统计、查询结果。

5)可按指定比例尺打印绘图

6)多用户、分级别管理。

7)具有网络功能。

 图5 排污管网系统用户界面             图6 局部放大视图   

212开发步骤和方法

1)图形数据输入。将管网图和井点分布图数字化建立两张MapInfo表,可利用已有城市交通图但要和管网图和井子图配准,MapInfo系统本身不能转换已有图件实现图件配准,我们用ARC/INFO系统通过编辑Coverage的控制点(TIC点)解决了配准问题。

2)属性数据输入。根据系统功能要求建立属性数据库,然后输入属性数据,相同属性多条管线和井点可编程一次输入。

213利用VB编程实现系统功能

1)根据用户要求建立管网系统菜单。

(1)系统模块:系统说明,用户管理,系统配置,运行MapBasic程序,发送邮件,退出管网系统。(2)图件浏览模块:打开图件,局部放大视图,打开表,打开工作空间,关闭表,全部关闭。(3)图件管理模块:新建表,保存表,另存为,保存工作空间,复原表,备份图件,移动图件,删除图件,重命名图件,数据交换。

(4)编辑模块:撤消,剪切,复制地图窗口,粘贴,增加井,增加管线,删除管线,修改管线属性数据,修改井点属性数据,整形,编辑已有图件,修改表结构,紧缩表。

。。

第3期赵连柱等:VisualBasic610在地理信息系统二次开发中的应用51

(5)查询模块:按水系查询,按区名称查询,按道路名称查询,按管线名称查询,指定面积查询,信息工具查询,SQL查询,剖面查询,碰撞检查。

(6)统计模块:按水系名称统计,按区名称统计,按道路名称统计,按管线名称统计,指定面积统计。

(7)报表模块:新建报表,打开报表,修改报表格式,删除报表,打印报表。

(8)绘图模块:新建布局,修改布局,页面设置,打印。

(9)帮助模块。

2)用VB编程实现系统功能。

3结束语,开发形式多样,而且需要不同专业人员合作才能完成。VB和MapBasic语言集成开发桌面地图信息系统MapInfo,并以城市排污管网系统的开发为实例,为VB应用在其它地理信息系统平台中提供参考。

参考文献

[1] MapInfo公司.MapInfoProfessional参考手册[Z].NewYork:Tory:1-4001

[2] MapInfo公司.MapBasicUser’sGuide[Z].NewYork:Tory:277-3101

[3] MapInfo公司.MapBasicreference[Z].NewYork:Tory:1-3001

[4] 邱仲潘,等.VisualBasic6从入门到精通[M].北京:电子工业出版社,1999

:36-1901

[5] 陈述彭.地理信息系统导论[M].北京:科学出版社,

1999:1-131

ApplicationofVisualBasic610inredevelopment

ofgeographicinformationsystem

ZHAOLian2zhu,SUNYa2jun,YANGGuo-yong

(CollegeofResourceandEarthScience,ChinaUniversityofMiningandTechnology,Xuzhou221008,China)

Abstract:Geographicinformationsystemredevelopingiscurrentlyahotspotstopic1ThispaperdealtwithapplicationVBtoredevelopmentofdesktopinformationsystemMapInfo,particularlyexpoundedonintegratedmappingusingVBandMapBasic1Asaexample,awaterpipemanagementinformationsystemwasgiven1

Keywords:geographicinformationsystem;desktopinformationsystem;MapInfo;VB;MapBasic

(责任编辑 

杨应章)

本文来源:https://www.bwwdw.com/article/ayge.html

Top