欢迎来到天天文库
浏览记录
ID:44067947
大小:71.56 KB
页数:7页
时间:2019-10-18
《基于MapInfo平台的GIS集成开发研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于MapInfo=1平台的GIS集成开发研究[摘要]以Maplnfo为基础开发平台,利用其二次开发语言MapBasic和VisualBasic进行集成开发,扩展了Maplnfo的功能和应用范围,同时又有应用针对性。集成二次开发既可以充分利用可视化软件开发工具的高效方便的编程功能,又可以充分利用GIS工具软件完备的空间数据可视化分析处理功能,集二者之所长,不仅能大大提高应用系统的开发效率,而且使用面向对象的可视化软件开发出来的应用程序具有良好的外观、完善的功能、可靠性好、便于维护等优点。[关键词]GIS
2、集成开发MapInfoVBMapBasic1.Mapinfo与VB集成开发的基本原理MapInfoProfessional自4.0以上版本提供了一种新的开发方式:OLEAutomationo所谓OLEAutomation,实际上是一种编程的接口,它允许用户应用程序或组件来控制另一个程序或组件的运行。它包括自动化服务器和自动化控制器。Mapinfo与VB集成开发,一般情况下将VB作为自动化控制器,控制和使用自动化对象Maplnfo,MapInfo作为自动化服务器,由VB驱动。在这种机制下,用户可以方便地在
3、自己的应用程序中使用Maplnfo,包括执行mapbasic命令,向Mapinfo中输入数据,以及从中获取数据、修改数据等。2.Mapinfo与VB集成开发GIS分析(1)建立VB应用程序与MapinfoOLE的连接VB应用程序与MapinfoOLE服务器连接原理是:在VB应用程序中通过OLEAutomation技术实现应用程序与Mapinfo的连接,从而实现OLE对Mapinfo的调用。其具体实现方法是:在包含地图窗口的窗体的Load事件中添加代码,首先声明一个Mapinfo对象变量,再创建mapin
4、fo.Application对象。要调用Mapinfo时,通过使用对象变量来传递OLE的可编程对象的程序标识,即:Mapinfo.Application。下面是OLE对象建立的示例:PrivateSubForm_Load()DimMapinfoasObject,声明OLE对象变dSetMapinfo=CreatcObject("Mapinfo.AppIication")'创建与Mapinfo进行通信的OLE对像,并自动建立连接EndSub(1)在VB应用程序中集成地图窗口在VB的应用程序中集成Mapin
5、fo的地图窗口,必须在VB的应用程序中为Mapinfo中的应用窗口重新设置父窗口,一般父窗口是窗体,并指定一个Picture控件为集成地图窗口的父窗口。同时还可以设置Mapinfo信息的父窗口和Mapinfo的其它父窗口。这些设置可以使用OLE自动化对象的Do方法来实现。最后,将地图的空间数据、属性数据以及其它数据建立有效的连接。下面是地图集成的一个示例:'重新设置mapinfo中的应用窗口的父窗口,其中map是一窗体,picturel是map上的picture控件MapInfo.do"SetAppIi
6、cationWindow"&map.hWnd'设置picture控件picturel为地图窗口的父窗口MapInfo.do"SetNextDocumentParent"&map.Picturel.hWnd&"StyIe1"'设置窗口信息的父窗口MapInfo.do"SetWindowInfoReadOnIy"'打开缺省地图空间MapInfo.do"RunappIication""在D:地图.wor"'将地图数据、属性数据以及其它数据集成Mapinfo.Do"RegisterTabIe""D:地图s
7、x.dbf""Typedbf'Mapinfo.Do"OpenTabIe"”D:地图sx.dbf"Interactive'缺省地图操作MapInfo.RunMenuCommand1702'在菜单或工具按钮中调用MapInf。的基本功能的方法如下MapInfo.RunMenuCommand1701'选择MapInfo.RunMenuCommand1702'漫游MapInfo.RunMenuCommand1705'放大MapInfo.RunMenuCommand1706'缩小(1)在VB应用程序中实现回调
8、VB应用程序是通过OLE自动化对象对集成的地图窗口进行操作控制的,当VB应用程序在地图窗口进行相关操作,如:地图图形对象的偏辑;地图图形对象的选择;改变地图窗口的状态;选择菜单、按钮等工具控件、窗口内属性数据编辑等。其操作的事件只传递给Mapinfo服务器,而不直接传递给VB应用程序,为了实现在VB应用程序中对事件的处理,就利用Mapinfo对象的SetCallBack回调)方法来处理消息并将其传递给应用程序。当Mapinfo系统通过OLE
此文档下载收益归作者所有