mapinfo电子地图控件是充分利用OLE和ActiveX技术的自定义控件,是基于与应用程序无关的思想而设计的,其目标是提供一种面向对象、与操作系统无关、与机器平台无关、可以在应用程序之间互相访问对象的机制。
ActiveX控件是建立在mapinfo电子地图标准上的独立的软件元件,提供给用户应用接口,发送相应的事件,开发者则可以截取这些事件,执行相应的功能。ActiveX控件开发端和使用端是完全独立的,可以用Delphi、VB、VC等各种语言来开发,又可以用于不同语言、不同开发平台、不同的系统环境中。
ActiveX控件与mapinfo电子地图不同,VBX的标准是建立在16位段式结构的基础上,并不适用于32位环境。ActiveX控件可在32位环境下提供与VBX相类似的功能。一个或多个ActiveX控件会保存在一个动态链接库中,但它是一种特殊的动态链接库, 其扩展名不是DLL而是OCX。从本质上讲,ActiveX控件是一个ActiveX服务器,它能提供所有的OLE功能和服务,包括可视化编辑、拖放和OLE Automation。
1、组件技术与MAPINFO电子地图的发展
组件式软件技术已经成为当今软件技术的潮流之一,为了适应这种技术潮流,GIS软件象其他软件一样,已经或正在发生着革命性的变化,即由过去厂家提供了全部系统或者具有二次开发功能的软件,过渡到提供组件由用户自己再开发的方向上来。无疑,组件式mapinfo电子地图技术将给整个GIS技术体系和应用模式带来巨大影响。
GIS技术的发展,在软件模式上经历了功能模块、包式软件、核心式软件,从而发展到组件式GIS和WebGIS的过程。传统GIS虽然在功能上已经比较成熟,但是由于这些系统多是基于十多年前的软件技术开发的,属于独立封闭的系统。同时,GIS软件变得日益庞大,用户难以掌握,费用昂贵,阻碍了GIS的普及和应用。组件式GIS的出现为传统GIS面临的多种问题提供了全新的解决思路。
组件式GIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间, 以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的 “积木” 搭建起来,就构成应用系统。
2、组件式GIS系统的特点
把GIS的功能适当抽象,以组件形式供开发者使用,将带来许多传统GIS工具无法比拟的优点,主要有:
(1)小巧灵活、价格便宜;
(2)无须专门MAPINFO电子地图开发语言,直接嵌入MIS开发工具;
(3)强大的GIS功能;
(4)开发简捷;
(5)更加大众化。
总而言之,组件式GIS肯定是未来mapinfo电子地图发展的主流,鉴于此,本电子地图的核心技术就是以MapX为基础来研究的。
三、 MapX的空间数据结构
空间数据结构,是GIS的基石,GIS就是通过这种地理空间拓扑结构建立地理图形的空间数据模型并定义各空间数据之间的关系,从而实现地理图形和数据库的结合,见图1。
从横向分析,MAPINFO电子地图采取的空间数据结构是基于空间实体和空间索引相结合的一种结构。
空间实体是地理图形的抽象模型,主要包括点、线、面三种类型。任何点、线、面实体都可以用直角坐标点x、y来表示。点可以表示成一组坐标(x,y),对于线和面,则均被表示成多组坐标(x1,y1;x2,y2;......;xn,yn)。空间索引是查询空间实体的一种机制,通过空间索引,就能够以尽量快的速度查询到给定坐标范围内的空间实体及其所对应的数据。
从纵向分析,mapinfo电子地图的空间数据结构是一种分层存放的结构。用户可以通过图形分层技术,根据自己的需求或一定的标准对各种空间实体进行分层组合,将一张地图分成不同图层。采用这种分层存放的结构,可以提高图形的搜索速度,便于各种不同数据的灵活调用、更新和管理。