免费论文查重: 大雅 万方 维普 turnitin paperpass

探索地籍图MapGIS开发城镇地籍图面自动整饰

最后更新时间:2024-03-04 作者:用户投稿原创标记本站原创 点赞:4441 浏览:10293
论文导读:
摘要:本文分析了MapGIS开发城镇地籍图面自动整饰的必要性;细致讲解了MapGIS开发的各种方式;阐述了MapGIS地籍图图面整饰的要求;详细叙述了MapGIS开发城镇地籍图面自动整饰的总体流程图;文章重点剖析了MapGIS开发城镇地籍图面自动整饰程序的实现;希望能给广大读者提供一定的理论与实践意义。
关键词:MapGIS,地籍图,图面整饰,二次开发

城镇土地调查是第二次全国土地调查的一项基本内容,是全面查清全国城镇范围内的土地利用状况,掌握真实土地基础数据的重要手段。城镇土地调查数据是第二次全国土地调查成果的重要内容之一。为保证今年底按时完成调查任务,确保第二次全国土地调查城镇土地调查数据工作的顺利实施,城镇地籍图面整饰工作必须按时按量按质完成。
利用现代科学技术,本着重点突出、确保质量、有所创新的原则,对城镇土地调查数据进行汇总与输出地籍图,全面掌握我国城镇土地利用类型、面积等信息,为城镇内部工业用地、基础设施用地等五个专项用地调查提供基础依据,为城镇土地的合理开发、利用和保护提供基础数据支持。而城镇地籍图图面整饰占据了城镇地籍图输出很大的一部份工作量。如果一幅一幅的按规范整饰需要花费大量的人力物力,而且容易出现人为的失误。MapGIS提供了丰富的二次开发函数,借助二次开发可以实现城镇地籍图图面的自动整饰,可以节省大量的人力和时间,大幅度提高工作效率[1-2]。
1 MapGIS开发方式
MapGIS软件提供了完备的二次开发函数库及类库,具有强大的二次开发功能。它具有开放性、多层次、全功能、高效率的特点,并支持VC++、VB、Delphi等集成开发环境。用户可在MapGIS平台上,开发面向各自领域的应用程序。目前,MapGIS二次开发库主要提供API函数、ActiveX控件、MFC类库等三种方式[3]。
(1) 基于API函数开发
这些函数的实现被封装在24个动态链接库(DLL)中, 因此,是独立于开发工具的。用户在使用如VC++、VB或Delphi等高级语言编程时,在调用Windows的API函数,就可依此调用MapGIS的二次开发函数。
(2) 基于MFC类库开发
MapGIS类库用面向对象的思想把一些API功能进行封装,形成多个派生于MFC中Cview类的可重用基类,用户利用基于MFC的MapGIS类库可构建面向对象软件工程的MapGIS应用系统。值得注意的是,类库开发仅针对C++的开放。
(3) 基于组件(控件)开发
基于组件(控件)开发是基于COM (组件对象模型)标准的一种程序组建,能够嵌入程序中运行完成一定功能,在软件开发中实现了功能重用。在MapGIS二次开发中,只需简单调用功能接口就可以了。
2 地籍图图面整饰要求

2.1 图内注记参数要求

MapGIS城镇地籍图图内注记参数要求如下表1所示:
表1MapGIS城镇地籍图图内注记参数要求


注:
(1)、城市内道路分,城市主干道14-24米、次干道10-14米、支路10米以下。
(2)、水系注记大小分六级:
A.

2.5mm:江、河、渠宽<5米,水库水塘面积<900m2。

B.

3.0mm:江、河、渠宽5-10米,水库水塘面积900-1600m2。

C. 3.5mm:江、河、渠宽10-20米,水库水塘面积1600-2500m2,大概占图面一格。
D.

4.5mm:江、河、渠宽20-35米,水库水塘面积占图面1-5格。

E.

5.0mm:江、河、渠宽35-50米,水库水塘面积占图面5-8格。

F.

6.0mm:江、河、渠宽>50米,水库水塘面积占图面>8格。

其他未指定的注记,地形相关的请参照《地形图图式》GB/T 2025

7.1-2007,地籍相关的请参照《地籍图图式》CH5003-94。

2.2 图框注记参数要求

图框注记参数要求如下图1所示:


图1 图框注记参数要求
3 总体流程图
MapGIS开发城镇地籍图面自动整饰总体流程图如下所示:


图2 MapGIS开发城镇地籍图面自动整饰总体流程图
4 程序编写
利用MapGIS组件开发平台进行GIS应用程序的开发分以下几个步骤进行:①选择应用系统的开发工具,如VB、VC论文导读:考文献国家土地管理局.城镇地籍调查规范.北京:地质出版社,1993.刘庆元,韦建超,左廷英.城镇地籍建库的数上一页123下一页
等;②将使用到的MapGIS组件或类库引用到应用程序中;③调用MapGIS组件或类库的属性和方法完成MapGIS基本功能; ④ 开发应用程序专用的功能。
本文采用VC++结合MapGIS类库的方式实现地籍图面的自动整饰功能。

4.1 MapGIS类库开发的实现

MapGIS类库的开发,首先安装MAPGIS二次开发库,这些库函数是使用VC++开发MAPGIS应用程序最快速有效的方法。下面创建MAPGIS图形编辑窗口:
第一步:利用VC++的程序向导(AppWizard)创建一个工程(名为CITY),点击Finish即可。
第二步:对VC++的工作环境进行必要的设置。分以下2个部分:
字节设置:选择Project菜单下的Settings命令,在C/C++页面上Category一栏选择Code Generation,将Struct Member Alignment设定为1 Byte。
(2)输出目录设置:选择Project菜单下的Settings命令,在General页面上Output files一栏, 填写mapgis应用程序目录, 如:C:\\Mapgis67\program。这样就把生成的可执行文件输出到MAPGIS动态连接库所在的目录下。
第三步:应用MAPGIS中的类和函数。
首先在工程的视图类定义(即CITYView.h文件)前加入includeCGisView.h”,然后将视图类从CView派生改为从MAPGIS中的CGisView类派。方法是:分别在视图类的头文件(TestView.h)和实现文件(TestView.cpp)中,用VC++的查找替换功能(Edit菜单下的Replace命令或是热键Ctrl+H )在弹出的替换对话框中选中左边三个复选框,然后点击“Replace All”即可。替换完成后就实现了视图类从CGisView的继承。
在此基础上添加编写城镇地籍图面自动整饰模块功能。

4.2 模块代码的实现

(1) 图内整饰模块
图内整饰模块的部份代码如下所示:
shortFramPntAi = _OpenFileArea(aHinst,(LPTSTR)(LPCTSTR)strPath00);
shortFramLinAi = _OpenFileArea(aHinst,(LPTSTR)(LPCTSTR)str1);
_StartClockCursor();
long i,j,linN,pntN,linlen;
shortpntlen;
float t1[3],t2[3];
D_DOT*lxy={0},*pxy={0};
 源于:本科毕业论文www.7ctime.com
  _GoingClockCursor();
_GetLinNum(FramLinAi,&i,&linN);
for(i=1;i {
if(_GetLin(FramLinAi,i,&lxy,&linlen,&linf)<=0 || linlen<4 )
continue;
}
(2) 图框外整饰模块
图框外整饰模块的部份代码如下所示:
_StartClockCursor();
long i,linN;
long linlen;
char* dat="";
LIN_INFO linf={0};
PNT_INFO pntf;
pntf.type=0;
pntf.info.ch.height=4.8;
pntf.info.ch.width=4.8;
pntf.info.ch.space=1.5;
pntf.info.ch.angle=0;
pntf.info.ch.ifnt=0;
pntf.info.ch.chnt=0;
pntf.info.ch.ifnx=0;
pntf.info.ch.hvpl=1;
pntf.iclr=1;
5 小 结
基于MapGIS类库结合VC++基础库开发出的城镇地籍图面自动整饰程序,进一步弥补二调数据库软件平台功能不足;实际应用表明,该程序界面人性化,操作简单,大大提高了工作效率。
参考文献
国家土地管理局.城镇地籍调查规范[M].北京:地质出版社,1993.
刘庆元,韦建超,左廷英.城镇地籍建库的数论文导读:据质量控制.城市勘测,2007(2):33—36.中国地质大学(武汉)信息工程学院.MAPGIS地理信息系统开发手册.武汉华地图形数据公司.1998.上一页123
据质量控制[J].城市勘测,2007(2):33—36.
[3] 中国地质大学(武汉)信息工程学院.MAPGIS地理信息系统开发手册[M].武汉华地图形数据公司.1998.