组件式GIS开发实例之MO+VC

来源:互联网 发布:传奇盛世翅膀升级数据 编辑:程序博客网 时间:2024/05/26 02:55

开发工具:MapObject2.0+VC6.0 

开发工具简介: 

       MapObjects是ESRI公司提供的一组供应用开发人员使用的制图与GIS功能组件,它是一组基于COM技术的地图应用组件,由一个称为Map的ActiveX的控件(OCX)和约45个自动化对象,在标准的Windows编程环境下,能够与其他图形、多媒体、数据库开发技术组成完成独立的综合性应用软件,是基于前端应用业务的良好的地图开发环境。MapObjects是一个OLE控件,它可以用于大量开发框架中,包括流行的Visual C++、Visual Basic、Delphi、Microsoft Access、Visual Foxpro等之类的程序设计环境。

实现功能简介:

     按照数据处理的流程(有流程图,但不好上传),可将本系统分为以下七大模块:

      (1) 地图输入模块

     该模块以对话框的形式实现用户选择shape格式的文件。

      (2) 地图操作模块

该模块设计的功能比较多,有以下几种:
① 地图显示
将由用户选择的shape格式的文件显示在主地图和鹰眼地图上,并且还能将用户通过图层管理模块添加的矢量数据和影像数据显示在主地图上,矢量数据要求能够叠加显示,影像数据要求能和矢量数据叠加显示,鹰眼地图要求和主地图保持一致,可通过鹰眼地图定位主地图。
② 地图放大
用户可通过鼠标点击放大和鼠标拉框放大两种形式实现地图的无极放大。
② 地图缩小
用户可通过鼠标点击缩小和鼠标拉框缩小两种形式实现地图的有限缩小。
③ 地图漫游
用户可以通过鼠标将放大后的地图进行平移操作。
④ 全图显示
用户可通过该功能,将放大、缩小、漫游后的地图恢复到初始状态。
(3) 图层管理模块
该模块有以下几种功能:
① 添加图层
在用户已经打开shape格式地图情况下,通过该功能可以再次添加矢量数据(格式为.shp)和影像数据(格式为.bmp),使主地图上能同时显示多个图层。
② 删除图层
用户可通过该功能选择删除当前图层以及所有图层。
③ 图层信息
用户通过该功能可将当前图层的名称及所有的属性信息显示出来,并为查询分析及专题图制作做铺垫。
(4) 地图查询模块
该模块实现了以下的功能:
① 属性查询
用户通过对话框输入某个地名,如果在该图层上有该地则通过闪烁显示,如果没有则弹出提示对话框。
② 空间查询
用户可通过在地图上的某个位置添加点,从而获得该点所在地块的所有属性。用户也可以通过点击地图上的某点,从而将包含该点的多边形的所有属性显示出来,并且选中的多边形可以实现闪烁。
(5) 空间分析模块
该模块实现了以下的功能:
① 点坐标获取
用户可通过鼠标在地图上点击点,从而获得该点所在的地图坐标。
② 多线段长度
用户可以通过在地图上划线从而得到该线段的长度,即实现量距功能。
② 面状实体信息
用户可以通过添加面状实体从而获得该面状实体在地图上覆盖的面积及周长。
(6) 专题图制作模块
该模块实现了以下的功能:
① 单属性专题图
分级统计专题图:
用户选择某种属性后可在地图上用颜色渐变的面状实体显示该属性的分布和值。
点密度统计专题图:
用户选择某种属性后可在地图上用点状实体的密度来显示该属性的分布和值。
② 多属性专题图
柱状分区统计专题图:
用户可选择多个属性(本系统中设置为3个),进行属性的对比,并在地图上用不同颜色和高度的矩形柱显示多个属性的分布和值。例如可以统计某地区的少年、青年、中年人群的分布,并比较三种人群的数量。
饼状分区统计专题图:
该统计图的功能和柱状统计专题图类似,也是对多属性进行统计,只是显示形式是饼状而已。
(7) 地图输出模块
将进行某种操作后的地图(如专题图统计,添加标记点、线、面等)以bmp格式输出存放在本地机器的磁盘中。
以下是其中几个功能的截图:

 

fig1.主界面(当时还不懂得用一些界面控件,所以丑了点)

    

fig2.矢量数据添加

fig3.影像数据添加

fig4.选点查询

fig5.饼状专题图制作

fig6.成果输出图(bmp格式)

原创粉丝点击