摘 要:在.NET平台上开发MapX组件是一个较新的课题。文中简要阐述了在.NET平台上开发MapX的意义;介绍了MapX与.NET平台绑定的基本步骤;探讨了开发MapX的具体方法;并用实例代码进行了说明,同时对开发过程中须注意的问题进行了研究,提供了解决问题的办法。初步解决了在.NET平台上开发MapX的问题,为下一步的深入研究打下了基础。
   关键词:.NET平台;MapX;开发
   中图分类号:P208 文献标识码:B 文章编号:1001-358X(2004)03-0007-04 字串5

  MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX组件。尽管MapX组件开发技术已趋于成熟,但在.NET平台上进行MapX开发还是一个新课题。本文以VB.NET为例,就在.NET平台上开发MapX进行初步的探讨。 字串4

1. MapX与.NET平台结合的意义
  Visual Basic .NET(简称VB.NET)是Microsoft公司向用户提供的具有强大
地图分析功能的Microsoft Visual Studio .NET(简称VS.NET)的四种编程语言之一,是继Visual Basic 6.0简单的升级,而是发生了质的变化。与VB6.0相比较,VB.NET无论在语法上还是框架结构上,都发生了较大的变化,功能上也大大增强,完成从最初的控制台应用程序、Windows应用程序到Web应用程序的各种不同要求,是一种真正面向对象的语言,是一次历史性的飞跃。VB.NET的出台,使之能与JAVA相抗衡。在GIS二次开发方面,由于VB.NET是Microsoft的产品,因此在Windows操作系统中利用组件技术开发GIS,比JAVA更加方便、快速、得心应用。VB.NET有着广阔的应用前景,并必将被越来越多的人所接受,VB.NET取代VB进行GIS二次开发,是大势所趋。因此,在.NET平台上进行MapX的开发是一个值得研究的课题。
2. MapX控件与.NET平台的绑定
  在VB.NET中使用MapX并不复杂,与在VB中一样,不需要编写一行代码就可以在应用程序中显示一张地图。安装好MapX后,启动VB.NET,在集成开发环境中选择“ 文件|添加项目|新建项目”命令,打开“新建项目”对话框,创建一个名为MapX的应用程序,项目自动生成Form1窗体,此时选择“ 工具|添加/移除工具箱项”命令(如图1)。 字串1
  在出现的自定义工具箱中选择“COM组件”,在“Mapinfo MapX V4”选项上打勾,点击“确定”按钮(如图2),这时在工具箱上出现一个新的控件,这个
新控件就是MapX控件。这样,就能在VB.NET中使用MapX控件了。
3. 在.NET平台上进行MapX开发
  地图控件用于显示地图。因此要显示地图,首先需要在窗体中加入一地图控件。可以通过在工具箱上双击地图控件,在窗体中加入地图控件,并根据需要再适当调整地图控件的大小和位置。也可以先选择该地图控件,然后在窗体中按住鼠标左键并拖动鼠标,指定地图控件的位置和大小。当在窗体中加入地图控件时,默认显示一美国地图,即地图控件MapX的Geoset默认属性为United State(如图3)。添加MapX控件后,开发者就可以像对其他对象一样修改MapX控件的属性和方法,调用各种功能了。在MapX中,提供了标准的地图工具,可以很容易地利用常用的标准工具开发出方便易用的地理信息系统,而不必针对每一种地图操作都完全靠开发者自已编程。MapX内置了常用的标准地图工具,主要分为两类:一是对象创建工具,用来创建地图图元;另一类是选择工具。在选择工具的使用时,可以配合功能键Shift和Ctrl键。它们包括:

字串1

  (1)改变地图比例尺和地图导航的工具:放大工具、缩小工具、平移工具和居中工具。
  (2)通过单击地图图元进行标注的标注工具。
  (3)以不同方式选择地图图元的选择工具集合。具体开发方法是:在程序适当位置激活某一个标准工具,把CurrentTool属性设为某一个常量,或直接用值。例如,在窗体中MapX控件为axMap1对象,当需要放大工具时:
  AxMap1.CurrentTool=MapXLib.ToolConstants.miZoomInTool
  或者:
  AxMap1.CurrentTool=1003
  运行程序就会看到此鼠标光标变为了放大镜。其他工具设定的方法与此相同。在具体实现中经常会为用户提供一些工具条,上面有地图的标准操作工具,以方便用户操作地图,例如提供放大、缩小、平移和选择这4种常用的工具按钮,在按钮的命令中可以编写为:
'地图放大工具
Private Sub Button3_Click(ByVal sender As System.Object,ByVal As System.EventArgs) Handles Button3.Click
AxMap1.CurrentTool=mapXLib.ToolConstants.miZoomInTool
End Sub
'地图缩小工具
Private Sub Button4_Click(ByVal sender As System.Object,ByVal As System.EventArgs) Handles Button4.Click
AxMap1.CurrentTool=mapXLib.ToolConstants.miZoomOutTool

字串3

End Sub
'地图平移工具
Private Sub Button1_Click(ByVal sender As System.Object,ByVal As System.EventArgs) Handles Button1.Click
AxMap1.CurrentTool=mapXLib.ToolConstants.miPanTool
End Sub
'地图选择工具
Private Sub Button7_Click(ByVal sender As System.Object,ByVal As System.EventArgs) Handles Button7.Click
AxMap1.CurrentTool=mapXLib.ToolConstants.miSelectTool
End Sub
对于一般的应用,MapX提供的标准工具就足够用了。至此,就实现了MapX在.NET平台上的应用与开发。
4. 应注意的几个问题
  VB.NET的集成开发环境较之VB要复杂一些,尽管用VB.NET和VB开发MapX的基本思想和基本方法大体相同,但是两者的语法和架构有较大区别,不能照搬照套VB开发MapX的经验,尤其是源代码,更不能相互利用。
  4.1正确添加MapX控件
  要在.NET平台开发MapX,首先要正确安装MapX软件包,否则,在“ COM组件”中就找不到“MapInfo MapX V4”选项。只须按照MapX安装指南按步骤安装即可。但要注意的是,随着MapX4.0之后的版本推出,MapInfo公司改变了版权控制的方式——采用计算机系统编号的方法控制。用户除了购买MapX软件本身之外,要针对每一台欲安装MapX的计算机单独购买软件许可(License),否则,软件将不能正常使用。其次,要正确将MapX控件添加到VB.NET集成开发环境的工具箱上,用惯了VB的编程人员都知道,是在“工程|部件”命令中打开对话框,选择Mapinfo MapX V4控件,但在VB.NET中没有“工程|部件”命令,要用“工具|添

字串1

加/移除工具箱项”命令打开对话框。
  4.2合理使用MapX标准工具
  为了在地图中创建新的图元,或者修改已有的图元,需要地图编辑功能。MapX的标准工具提供了miAddPoint、ToolmiAddLine、ToolmiAddPolyLineTool、miAddRegionTool四种添加工具,分别属于添加点、添加线、添加折线和添加区域工具。对于添加工具,MapX指定将添加的图元放在Insertionlayer图层中。
  因此需要在添加的图层前,先设定insertionlayer图层,并将其设为可编辑的。方法如下:
Private Sub MenuItem132_Click(ByVal sender As Systeme.Object, ByVal e As System.EventArgs)Handles MenuItem132.Click
AxMap1.Layers.LayersDlg()               (1)
AxMap1.Layers.InsertionLayer=AxMap1.Layers.Item(1)         (2)
End Sub
  其中(1)表示:打开图层对话框,在图层对话框中将当前图层设为可编辑;(2)表示:将Insertionlayer图层设定为当前层。
  4.3关于更改初始界面
  在窗体中加入MapX控件时,默认的是美国地图,因此,在应用程序运行时,初始界面是美国地图。如何将初始界面改为自已需要的地图呢?首先,将需要的地图(扩展名为.gst)放到MapX安装路径的Maps文件夹下,例:D:/Program Files/MapInfo MapX 4.0/Maps。其次,在窗体MapX控件中点击鼠标右键,选择“属性”,出现如图4所示中间的地图属性页。 字串8
  在对话框中点击General选项卡,找到GeoSet选项,选择所需地图,并修改底部的Title内容,即可将初始界面的地图更改为自己需要的地图。

字串9

参考文献:
[1]刘光. 地理信息系统-组件开发篇[M]. 北京:中国电力出版社,2003
[2]齐锐. 用MapX开发地理信息系统[M]. 北京:清华大学出版社,2003
[3]李胜乐. Mapinfo地理信息系统二次开发实例[M] 北京:电子工业出版社,2004
[4]李连营. 基于MapX的GIS应用开发[M] 武汉:武汉大学出版社,2003
[5]王兴晶. VisualBasic .NET应用编程150例[M] 北京:电子工业出版社,2003
[6]葛小东. VB.NET编程实例与技巧集粹[M] 北京:中国科学技术出版社,2003
作者简介:郑军(1972-),男,湖南长沙人,中南大学硕士研究生。研究方向:地图学与地理信息系统。

基于.NET平台的MapX开发相关推荐

  1. 基于Andro平台的软件开发若干关键技术研究(笔记)

    基于Android平台的软件开发若干个关键技术研究 摘要:随着移动智能终端的飞速发展和广泛普及,移动GIS应用正迅速迅速成长,并且成为最有发展前景的热点之一.作为移动GIS应用的分支,基于Androi ...

  2. 基于Mozilla平台的扩展开发(续)----XPCOM组件篇

    源代码下载:HelloWorld示例.rar 在<浅谈基于Mozilla ThunderBird的扩展开发>这篇入门文章中简单介绍了基于Mozllia平台进行扩展开发的基础知识,但仍然欠缺 ...

  3. 基于Android平台im软件开发,基于Android平台IM软件多媒体数据传输保护

    Protection for Instant Messanger Media data Transmission Based-on Android WU Weina 1 吴维娜(1992- ),女,北 ...

  4. 茶百科 android 论文,基于android平台手机茶百科开发_学位论文.doc

    基于android平台手机茶百科开发_学位论文 摘要 随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备.因此,手机的应用服务将会有很大的发展空间,手机茶百科软件就是其中的一项.And ...

  5. 茶百科 android代码,基于android平台手机茶百科开发设计---学位论文.doc

    摘要 随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备.因此,手机的应用服务将会有很大的发展空间,手机茶百科软件就是其中的一项.Android平台提供给用户非常方便的茶百科查询功能, ...

  6. 基于eclipse开发Android天气,基于android平台的天气预报软件的设计与实现.doc

    基于android平台的天气预报软件的设计与实现 摘 要 随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备.因此手机的娱乐应用服务将会有很大的发展空间手机快捷查询软件就是其中的一项. ...

  7. 基于Mozilla Thunderbird的扩展开发(四)---修改Thunderbird源代码实现自动保存附件...

    <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace ...

  8. android人脸情绪识别器,基于Android平台的人脸表情识别系统的设计与实现

    摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...

  9. android 表情识别,基于Android平台的人脸表情识别系统的设计与实现

    摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...

最新文章

  1. hbase系列之:独立模式部署hbase
  2. 第6章 数组----复制数组
  3. boost::execution_monitor相关的测试程序
  4. 主成分分析法_数学建模 || 葡萄酒的评价(1)主成分分析法
  5. 豆腐怎么做小朋友才喜欢吃?
  6. 打通高德、UC、微博,支付宝小程序组建“阿里联盟军”对抗微信小程序?| 技术头条...
  7. 安卓* 系统级 Java*/C++ 代码调试
  8. Linux 命令(126)—— ssh 命令
  9. 一、项目分析(华为项目管理法-孙科炎读书摘要)
  10. CAD图纸转换成高质量的彩色PDF格式如何操作?
  11. 史上最全论文下载方法
  12. 高一计算机网络技术应用计划,高一信息技术课教学计划
  13. 德语语法笔记——形容词综述
  14. deflate与gzip
  15. win7 正式版安装成功,贴图得瑟一下
  16. c51语言如何按位异或,51单片机教程:单片机逻辑与或异或指令详解
  17. 高中辍学,三年间做遍各种零工,转行程序员改变人生
  18. Java 大写转小写
  19. ubuntu18.04怎么解压rar压缩文件
  20. 微信接入机器人实现对别人消息和群at消息的自动回复

热门文章

  1. 【外链建设方法】SEO外链推广方法
  2. 使用UE4制作RPG类游戏(学习笔记6)(技术笔记5) <刺客信条>
  3. 1421 净现值查询
  4. AIX中经常使用的SMIT 的使用
  5. 如何把拱门改成方形_闭气式方形拱门的制作方法
  6. 13.矩阵的快速转置算法
  7. 关于win11管理员提权方法的补充技巧
  8. 基于javaweb的设备台账管理系统(java+ssm+html+jsp+js+mysql)
  9. 引起网络广播风暴的原因
  10. 麒麟桌面系统配置samba共享