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

开发工具: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格式)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您在此处下载压缩包,还要请您联系作者邮箱:cnaulee@gmail.com =========================== 综述: VC++通用GIS功能开发解决方案》源代码是基于VC++6.0 MFC 类库,在Win2000平台上开发的。界面部分用到了较低版本的 CJ60Lib 开放源码库,用户可自行替换高版本或其他界面库,它不作为本方案的商业部分。 《VC++通用GIS功能开发解决方案》源代码是迄今为止公开提供的最全面、最完善的开发GIS产品的一套基础解决方案。它的界面十分友好和具人性化,它传承了“VC++界面一揽子解决方案”(http://summerplq.51.net)最具经典的界面个性,并融合了该产品自身特有的亮点。它的功能部分解决了GIS开发的诸多普遍问题和关键技术(如数据结构,地图显示,基于DEM的地形分析等),可适用于城市规划、地质勘探、土地丈量、水利枢纽、农田建设,乃至其他构建于城市图和地形图之上的GIS类软件开发。可以说,它的基本功能方面已相当成熟。 《VC++通用GIS功能开发解决方案》是一套内容十分丰富的“教科书”,相对应于各个编程段的程序员来说都有合适的学习内容。源程序条理清晰,模块化设计,普遍采用注释,对于入门和初级程序员来说,可以拆分支解开来学习;对于开发级程序员来说,它提供了丰富的功能实现,省却了您金钱和间的浪费;作为专业级的程序员来说,或许你可以从中找到另一条安全、快捷的编程思路,从而解决你在诸如方案设计,数据构建,分析实现上的困惑。 目前1.0版本:不带数据库,不带查询功能,不带投影变换功能。 方案内容: ============================================ 一、用户界面和控制 ------------------------------------ 1、实现全彩启动画面,令你程序增色不少; 2、实现软件启动口令设置。积作者多年经验完善而成,口令加密技术先进; 3、实现全屏功能,通过TAB键方便地互相切换; 4、实现人性菜单按钮,有工具栏纹理、文字、菜单图标,以及右键菜单功能; 5、实现视图窗口位图背景; 6、实现状态栏信息功能,显示坐标和高程; 7、实现对话框按钮个性化,平面加图标,自己琢磨还有更多效果; 8、实现发送邮件和访问主页功能; 9、实现真彩位图,图标,光标大应用,你可以在软件中发现大量真彩技术的应用; 10、实现树目录复选图标,彻底解放图层控制。 ! 更多细节请参考“VC++界面一揽子解决方案”3.0v(http://summerplq.51.net) 二、功能实现部分 -------------------------------- 1、数据格公开透明,这在源代码中是显而易见的。数据源还可以通过Mapinfo中间格转换过来!一旦你有了源代码,自己就可以编写出该转换软件,当然也可以购买我们提供的该软件。 2、地图显示(显示、漫游、放大、缩小)。 # 地图显示方采用了图层控制技术,让你点击树目录中的“小眼睛”就可以方便地实现图层的开关显示。操作图形不闪烁,结合“存档”功能,你还能保存你的设置! # 漫游采用无边际方,任意漫游!同结合“存档”功能,保存地图显示位置! # “放大”和“缩小”都同采用两种方:定点缩放和拉框缩放!拉框缩放采用了光栅绘图模,效果自然漂亮! 3、九大GIS分析功能(基于DEM) #量算多点距离#计算线段最大坡度#计算区域面积#计算区域高程#两点通视#中心通视# #区域坡度图#断面图#区域通行分析 全部分析采用实数据显示(操作同显示结果)技术,配以最后结果显示。 几点说明: ============================================= 1、考虑到数据量大小问题,本方案只带了一幅示例数据,但已经足够用!又由于该样图来自于原来四幅图中,而本方案所用到的引擎文件也没有作相应改变,所以点程序中的“全图”功能后,该幅图只占了客户区的一角,而不是将该幅图放满客户区。这不影响其它任何操作,不是程序有问题。 2、本程序不提供更多数据!但我们提供将Mapinfo中间格数据(即.mif格)转换到本程序数据格的软件。所以说,您做的城市图也可以放进来用。 3、本程序所用符号库(所谓符号库,即指地图中的点、线、面符号;如高程点,道路,植被等。)采用了封装的动态链接库DLL_study4R.dll,主要是因为该符号库是商业符号库(欲知其详细内容,请留意本人主页日后将刊登的介绍,大体上它包括了所有地形图符号以及城市图符号(如教育机构符号等))。 4、本程序由于CJ60Lib库版本问题而不适合.NET平台,但不是本程序自身问题!用户可以替换掉CJ60Lib库改用支持.NET的版本或其他界面库,或者索性弃用!这不影响程序其他实质部分。 5、补充:今后将推出基于DEM数据生成三维图功能(将作为单独模块提供)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值