用vc实现gis系统基本功能

用vc实现gis系统基本功能

ID:14319023

大小:47.50 KB

页数:7页

时间:2018-07-27

用vc实现gis系统基本功能_第1页
用vc实现gis系统基本功能_第2页
用vc实现gis系统基本功能_第3页
用vc实现gis系统基本功能_第4页
用vc实现gis系统基本功能_第5页
资源描述:

《用vc实现gis系统基本功能》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、技术文档用VC实现GIS系统基本功能文档说明:此文档适合VC++的初学者,高手也可参考(希望能提出宝贵意见)。开发前准备:前提:必须在你的电脑上安装了MapX控件,并且准备好需要用到的电子地图(Mapinfo格式的)VC++嵌入MapX进行二次开发可分为以下几个步骤来实现:  1对应用工程的预设置  在创建MapX控件之前,必须将MapX.h和MapX.cpp文件加入到工程中。对于VisualC++5.0及以上版本,从Project菜单中选择AddToProject->Files命令,打开InsertFilesintoProject对话框,选择M

2、apX.cpp和MapX.h文件加入到工程中(在MapX自带的C++例子中有这两个文件)。  注意:不要选择Project菜单中的AddTOProject->ComponentsAndControls命令。如果选择该命令加入MapX控件,将创建一新的.cpp文件,但是该文本没有包括所有的MapX对象。  2对MapX属性的操作  对于C++程序来说,每个MapX对象(Objects)都在MapX.h和MapX.cpp中用一个类来实现,类的名字和MapX对象的名字相同,且已经在CmapX中定义了。  例如,DataSet对象用类CmapXDatas

3、et实现。这和C++类的定义相一致。而每个MapX对象的属性(Properties)是用类的成员函数来实现的。比如DataSet对象的名字(Name),就是用Name()函数来实现的,不过,Name()有两种使用方法,即Get和Set。如:  CStringGetName();//获取对象名字  voidSetName(LPCTSTR);//设置对象名字  3部分MapX工具的应用  (1)“全图”工具的改进  一般全图工具的代码为:  m_ctrlMapX.SetZoom(m_ctrlMapX.GetGeoSetWidth());  此方法的缺

4、点是重新显示全图后,实际上是以上一个视图的中心作为屏幕中心进行显示,如果上一个视图在全图中的边缘位置,点击全图工具后实际上不是初始设置的全图。因此可以用如下代码实现:  CStringmapname=m_ctrlMapX.GetGeoSet();//取得当前地图的名字  m_ctrlMapX.SetGeoSet(mapname);//设置该地图为主视区显示图  (2)创建“信息”工具  MapX没有提供信息工具,该工具是自定制工具。有两种实现方法,其基本思想是:  (1)创建工具的鼠标指针类型(一般为“+”),当在工具栏上选择此工具后,设置为当前

5、工具,然后跟踪鼠标在地图上点击的位置,触发ToolUsed事件,根据位置信息确定相应的对象,然后读取对象属性或绑定的数据库,弹出对话框,实现信息显示。此种方法只适用于显示地图的最上层对象(在MapX自带的C++例子“Buffer”中有具体实现代码)。  (2)用选择工具选中地图上所要显示信息的对象,然后再点击工具栏上的信息工具,弹出对话框,实现信息显示。此信息工具的实现代码与(1)不同,没有鼠标指针,实际上就是读取选中对象的属性或绑定的数据库的操作。此方法适合显示地图上的任意图层。  两种方法各有特点,第一种方法直接,但在实际应用中容易出现异常,

6、第二种方法要多点击一次,但应用稳定,而且适用地图上的任意图层。  (3)“测距”工具的使用注意事项  MapX的Distance()函数是针对地球地图的,在非地球地图中使用要注意数值转换。否则测出的数据与实际相差甚远。  4用MapX进行GIS二次开发  (1)创建数据库技术文档  空间数据库可以通过两种方法创建,一种是通过MapX的图层生成功能创建。MapX生成的每一图层都对应一张表(table),该表中除了存有地理对象的位置坐标以外,还可以包含其他属性字段;另一种方法是通过导入带有地理位置信息的其他数据库生成。MapX可以通过数据绑定把这些数

7、据库中的地理信息映射到地图图层上,MapX支持对多种常用数据库的访问。  (2)设置图层控制和地图投影  在把地图加入到MapX之前,我们可以使用MapX附带的图层管理工具GeosetManager把要加入的图层匹配在一起,建成一个图层组,该图层组规定了其中各个图层的名称、内容、属性及各图层之间的显示顺序。MapX中可以给图层设置四种属性:可显示、可选择、可编辑和自动标注。一般图层的属性是可显示的,需要查询的图层设置为可选择,需要修改的图层设置为可编辑,而自动标注可以自动显示图层中地理对象的标签。合理地设置这些属性将有助于系统实现地理信息的维护和

8、查询功能。在匹配各个图层时,应该注意各个图层投影的设置。全部图层必须使用一致的投影方法才能精确匹配。MapX中的地图分为地球地图和非地球

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。