基于MapX控件的电子地图软件的研究与实现
更新时间:2023-07-17 09:57:01 阅读量: 实用文档 文档下载
MapX 相关应用基础
基于MapX控件的电子地图软件的研究与实现
郎 杰,徐 虹
(桂林长海发展有限责任公司,广西 桂林 541001)
【摘 要】文章应用MapX控件实现了电子地图软件的基本功能,着重以Visual C++显示地图和对图层进行操作为例,说明利用MapX控件进行Maplnfo地理信息系统二次开发的方法,并对软件构成和实现功能进行了详细的介绍。
【关键词】MapX;Visual C++;电子地图;Maplnfo
【中图分类号】TP311 【文献标识码】A 【文章编号】1008-1151(2009)08-0047-02
“地图工具”菜单中选项具有地图的放大、缩小、居中、(一)引言
漫游、平移、点选图元、圆选图元、多边形选择等功能。同MapX是MapInfo公司提供的具有强大地图分析功能的
时用户可以输入经纬度对地图定位、进行地名查找和距离测ActiveX控件产品,它提供了一个最简单和最节约成本的方
量,方便用户使用。 法,用来将地图功能嵌入到新的和现有的应用中。它可以被
3.软件的界面 快速集成到使用面向对象语言的客户端应用程序中。通过
软件的运行界面,如图1所示。 MapX,可以按照开发人员的意愿在应用程序中加入强大的制
图功能。只需在设计阶段将MapX控件放入窗体中,并对其进
行编程,设置属性、调用方法或相应事件,即可实现数据可
视化,专题分析,地理查询,地理编码等丰富的地图信息系
统功能。MapX还可以方便地将一些有特殊意义的数据记录在 地图上,使用户更直观地了解地理信息,从而为用户的决策 提供根据。VC++是目前较为流行的可视化开发编程工具,有 较好的组件集成功能,是电子地图应用程序较为理想的开发 环境。随着计算机的飞速发展,电子地图在农林、水利、交 通、城市、资源管理与灾害监测等方面取得了广泛的应用。 下面本文将讨论以Visual C++为开发平台,用MapX开发电子
地图软件的具体方法。
(二)软件构成
1.软件的特点 图1 软件运行界面 软件采用MapX组件与面向对象可视化编程语言Visual
C++集成的二次开发模式,具有电子地图所必备的基本功能;(三)软件的实现
同时该软件还具有可扩展性,使开发者能根据实际情况添加在VC环境下集成MapX开发电子地图软件是将MapX作为其它应用功能,能够根据应用的变化而不断改进系统功能。控件插入到应用程序中,然后通过设置其属性和调用其方法,软件界面友好,使用方便,维护简单,稳定性好,通用性强。 响应其事件来实现的。系统具体的开发步骤如下: 2.软件的主要功能介绍 1.软件框架的生成 软件的主要功能包括文件、编辑、查看、工具等。并提首先打开VC新建一个基于MFC的应用程序,然后在工程中供地图工具栏,方便用户的使用。 包含MapX控件,方法为从“Project”菜单中选择“Add To (1)文件 Project”的“Files”选项,将MapX.cpp和MapX.h文件包含“文件”菜单中可以打开电子地图或者导入电子地图的到工程中,在视图类CDituView中定义一个MapX实例:CMapX 图层,也可以把用户编辑过的地图场景保存下来。MapX支持
m_ctrlMapX,并声明MapX的控件ID:#define IDC_MAP 100,与MapInfo一致的数据格式,可直接开.tab、.gst等文件。
就可以通过VC调用MapX的属性和方法来实现所需的功能。 (2)编辑
2.软件初始化 “编辑”菜单中选项可以根据用户不同需要,在图层上
进行放置符号注释、文本注释、图元标注等编辑操作。 首先在类向导中为WM_CREATE、WM_SETFOCUS和WM_SIZE消
(3)查看 息创建处理程序,以在创建视图时创建MapX控件,语句如下: “查看”菜单提供了查看属性页、查看整个图层、工具if (m_ctrlMapX.Create(NULL, WS_VISIBLE, CRect(0,0,600,600),this, 栏、比例尺等子菜单。查看整个图层,使用户可以浏览全图。IDC_MAP) == false) 工具栏、比例尺何以由用户选择加载或隐藏软件的工具栏及{ 是否在地图上显示当前比例尺。 return -1; (4)工具 }
【收稿日期】2009-04-15
【作者简介】郎杰(1982-),男,桂林长海发展责任有限公司设计师,从事装备系统软件设计;徐虹(1986-),女,桂林长海发展责任有限公司设计员,从事终端软件设计。
- 47 -
MapX 相关应用基础
然后通过WM_SIZE消息处理函数调整地图大小,使其与本功能。首先在OnCreate()函数中创建一个定制工具,将其客户区域大小保持一致;通过WM_SETFOCUS消息处理函数确ToolTypeConstants值设为miToolTypePoly,以使其在使用保只要窗口被激活,MapX就获得焦点。为了方便该软件的使时触发PolyToolUsed事件,来实现折线测距的功能,其代码用,使软件初始运行显示预设地图。可以将地图文件夹拷贝如下:
m_ctrlMapX.CreateCustomTool(CUST_DISTANCE, 到可执行文件的同目录下,然后在WM_CREATE消息处理函数
miToolTypePoly, miCrossCursor); OnCreate()中取当前应用程序路径,将该地图显示出来,并
当用户选择测距功能时,设置当前工具ID为所创建的定取消文件标题的显示,打开地图程序代码与此一致,程序代
制工具,然后调用PolyToolUsed事件处理函数码段如下:
OnPolyToolUsedMap(),在该函数中实现测距功能。 m_ctrlMapX.SetGeoSet(sa); //sa为地图文件完整路径
在函数中定义一个CMapXPoints集合pts,用其表示用户m_ctrlMapX.SetTitleText(""); // 不显示标题
在测距时所选的节点集合,然后调用MapX的Distance方法至此,已完成程序的初始化过程,程序界面如图1所示。
计算总的距离: 3.地图编辑
double dDistanceTot = 0.0; MapX提供了对象编辑工具使用户能在地图图层中创建和n = pts.GetCount(); 修改图元。有四种标准的对象创建工具:添加点、添加线、for (i=1; i<n; i++) 添加折线和添加区域。这些工具把新的图元添加到那些用 { yers.InsertionLayer 属性指定的任一图层上。实现 CMapXPoint pt1 = pts.Item(i); 画点的代码如下: CMapXPoint pt2 = pts.Item(i+1); // 计void CDituView::OnMapToolDian() 算两点间距离 { double d = m_ctrlMapX.Distance(pt1.GetX(), layer.GetStyle().SetSymbolFontColor(miColpt1.GetY(), pt2.GetX(), pt2.GetY()); orOrange); // 设置符号颜色 dDistanceTot += d; layer.GetStyle().SetSymbolCharacter(54); }
// 设置Symbol样式
layer.GetStyle().PickSymbol(); (四)结束语
// 显示Symbol样式选择对话框 本文介绍了采用面向对象程序设计语言VC++,集成MapX
m_ctrlMapX.SetCurrentTool(miAddPointTool); 控件,实现了一个小型电子地图软件的基本方法,由于在开
// 设置当前工具为画点工具 发语言平台下嵌入了ActiveX控件,可实现快速小型的组件
} 重用,代码共享,从而提高编程效率。选择开发平台与特定画线和画面功能的实现与以上代码相似,只需设置不同的地图组件是非常重要的,在具体的开发过程中,要根据经的符号样式即可。用户还能够在地图中添加文本标注,代码济条件、硬件配置及时间等因素综合考虑择优选取。本文旨
在为用户提供开发具有典型地图功能的应用软件接口程序的如下:
基本方法。如要投入应用还需要根据具体情况,在此基础上m_ctrlMapX.SetCurrentTool(miTextTool);
进行完善与扩充。 4.地图工具
电子地图软件都提供如放大缩小、居中、漫游、图元选
【参考文献】 择、定位与查询、测距等基本功能。通常采用MapX通用工具,
[1] 岳新利.张永进.孙毅.基于MapX平台的地理信息系统开发MapX中常有的系统定义工具有:放大与缩小、居中、漫游、
技术的研究[J].实验室研究与探索,2003(8). 图元的选择等工具。可以非常方便的实现上述功能。MapX控
件本身没有提供测距功能,所以需通过创建定制工具来实现
(上接第46页)据库表的内容必须作为顶级元素出现在
<before>块里。<errors>:表示被 Diffgram 处理逻辑忽略
的元素。
(四)小结
SQL Server 2000 提供了许多处理XML 数据的有用特性。
通过分析利用这些特性,可以很容易地从数据库中提取XML
文档,这对基于XML的Web系统开发是非常有益的。相信随着
对XML应用的广泛以及领域的拓展和新的应用对传统的数据
库提出新的要求,在这个领域内,还有很多问题有待我们去
研究和解决。
【参考文献】 [1] 刑春晓,张志强,李骅竞,等译.XML数据管理 纯XML和支持XML的数据库系统[M].清华大学出版社,2006. [2] 沈兆样,李劲.SQLServer2000 与XML 整合应用[M].北京:清华大学出版社,2001. [3] 飞思科技产品研发中心.SQLServer2000XML 应用开发[M].北京:电子工业出版社,2001. [4] 蔡瑞奎.用XML DiffGram对SQL数据库操作的方法[J].科技情报开发与经济,2007(21). [5] 黄芳.SQL 数据支持XML 技术[J].山东省农业管理干部学院,2006(22).
- 48 -
正在阅读:
2009年12月大学英语六级真题听力mp3和文本下载09-03
王子与贫儿读后感100字05-26
服装基础知识04-27
兰州市包装装潢印刷企业名录172家03-20
刘玲玲 练习题答案合订版01-10
欲寄彩笺兼尺素,山长水阔知何处02-14
供电所效能监察的实践和思考08-27
高等数学对中学数学的指导06-29
PSCAD中文教程12-18
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 控件
- 电子地图
- 基于
- 实现
- 研究
- 软件
- MapX
- 医药营销系统内务控制与管理
- 化工进展格式 (1)
- 2020年中考九年级调研考试数学 三诊
- 安全评价师二级综合评审
- 改进的中值滤波算法在图像去噪中的应用
- 08 教材订购情况表
- 中药学复习题全面
- 生产车间量化绩效考核
- 数据采集卡 250K 16位 32路模拟量数据采集卡 带开关量控制 计数器功能
- 高新技术企业所得税优惠政策及后续管理8
- MPEG系PC减水剂合成工艺
- 校园整治表态发言 文档
- 农机信息化网络建设探讨
- 基于SVAR模型对我国外汇贷款增长问题的实证研究
- 2014年1月如东县小学五年级阅读考级检测题
- 医疗纠纷第三方调解机制的方案
- 畜禽生产概论填空题
- 2013-2014学年度第一学期安全教育教学工作总结
- 浅谈新《医院会计制度》背景下的医院固定资产会计核算
- 孕期护肤常见问题解答