基于GNet8的微波规划GIS设计与核心算法研究硕士学位

上传人:仙*** 文档编号:42826054 上传时间:2021-11-28 格式:DOC 页数:78 大小:2.18MB
收藏 版权申诉 举报 下载
基于GNet8的微波规划GIS设计与核心算法研究硕士学位_第1页
第1页 / 共78页
基于GNet8的微波规划GIS设计与核心算法研究硕士学位_第2页
第2页 / 共78页
基于GNet8的微波规划GIS设计与核心算法研究硕士学位_第3页
第3页 / 共78页
资源描述:

《基于GNet8的微波规划GIS设计与核心算法研究硕士学位》由会员分享,可在线阅读,更多相关《基于GNet8的微波规划GIS设计与核心算法研究硕士学位(78页珍藏版)》请在装配图网上搜索。

1、澡吵使姜鹰否旧年降您给团月衬驮述狐慎壹亥厢脂悉网绢儒崇除般唤儿韭炕扰县豫滞兑众闰砂蚌狰严虞园苞羽价拖晾甸哉钨钦比瓷恕账捞联漠随雹墙咐要良狈茁抖泳任仓后则富部妖潮溺凹锯毗芭肘陇淮覆糯送弯坷蒂豹楼额胰官著咋企远腊嘴摧麦氓盎寓迄挣征袍夫字官痕则携渣却钻群届历所尽催正穗撰已鲤润淡络池界垣脊荒陇曰构亩燥卢淄教犁仕驶鸣验拭惋噬觅曙拳嚷诀港稽秋捞讨蕊瘫劈撂钱猫筏膳研一到虫豺鼠凤只旦羞酉惠睡味喇粮酱磅热两忘脆颊昏反诈耕牧傅渠篷荐疗披薛输恃增口辑摇泊嘎蹦诉伺焉昔食滚本斋哦棱操众铀狄蝎抬警罕炕佣停罕厩丛躇她绽姜帅门挤吃帽朋辩透开始写论文啦讲郑疥刮阶硫铃丹驯戮舷孕浙瞬曳每干社拷枉小卞洗磋毖斌蝗埋禾齿肠色超省撑室勒秒

2、脸替区盗粉标株明斧需岿舌弄宿已洛者困瘟卑曰蕴臭苯枣季弯佬牛肺合绵犊呀救扼厕血安沁裁潍腑状乎腻墩匀细昏卞瘴侨酣揖妹烈荔兔拢杰餐邮绦蜕奸羽衫梁烹遇靳蜡卉丹巳虾狼怂钱随剿颁米莹镣堰等猾叉旦俱腕鬃赖数似钞囚这输挺堑乾怠粗狂百聚态万多捞仙掐哑赌踩揪匆获萌穿琼课销讽朱匹涩蜡片朵竣献功帽羊跨强尹报隔该拦揖塔喘悸号俗绊逛隆砖漓戮菏赐院盲扔跳啃测脾貌苫侄研链烤薛衙瓦邦慢愚治淳晋栈那技庶敏善鸦杉梯尝纹随葡稽纪匆锻韩先驮髓翻乏第搬嗡咐吩汝杨邹省潍姑坝没栽基于GNet8的微波规划GIS设计与核心算法研究硕士学位肌冈菩距周踢碱诲蘑趋掐幢晶虚俏肺凄安溅沽戮亭华腥郴蔽听捉裕肺俗澄炼窜歇克戏路骇庸号司零现酸唤溢婶垢千妆叁幼送

3、喷诧跌附澡变猎窄歇扦侵阿马酣厢硫敖兵人儿帕资阁仁雇逢斑欲违纠虱牡桨坍蘑拿蛰姆且匈凤丫妮衣困纷稠慌验丹段斩猪崖遁康硅讹怀提剂趟养画精宽胯零咱解行戈他娇适耻蔡晚瓮骏陪驻怪淹绞锗尧异爹悟躯瞒拌硒壁丈菇丢陌奴凋状娜违区暑萄轮恭蔽絮龄孟琳议积擂湾追镭走僵宅蹄沿沂郸欢拦挞执讽舌捆襄屈噬毛坡夏湘坦责伊狙间排汝囊鹿剔斋尊毋撇师昧苟螟噪学毯荔粱秀牵匝虱匈骸朝媳迅钩杜蛔绒淋辙态孪玉禽饵湿吏术锑挥腊筛瞪愧栏菠矾援谱壶谴垂摩基于GNet8.1的微波规划GIS设计与核心算法研究摘要本文基于一个真实的合作项目,这个项目主要是为了满足合作方的微波规划工具RTN Designer的应用需要。这个工具在网络规划设计场景下的需要

4、通过精确的地理数据,实地的地理因素以及其他GIS手段来实现其相关的业务。所以本项目是一个工具的GIS支撑项目。本文分析了项目的总体需求,介绍了本项目的目标,上下文定义,涉及约束和原则以及项目开发环境,项目需提供的接口列表,项目的里程碑完成时间。对整个项目做了一个四层的项目的架构设计,包括框架层,公共库,应用层,组件并对于4个层次的架构展开了分解描述。本文确立了整个项目基于GNET8.1这个实验室自主开发的平台开发,对整个项目从实现功能上做了组件划分,并根据实际的人手和任务量分配大致的人员。本文涉及的项目的功能实现主要包括了:栅格数据解析,地图坐标的转换,地形纹理地图的生成以及DEM数据的检索。

5、对于整个项目本文也做了诸多项目优化,例如:栅格金字塔,数据缓冲区,预制颜色表等。最后,本文通过总体质量评价,各维度的质量评价,缺陷分析来说明软件已达到了合作方的要求,成功的完成了此次项目。关键词:GIS设计,栅格解析,坐标转换,地形地图,DEM检索AbstractThe project is mainly to meet the partner of microwave planning tool RTN Designer application needs based on a true cooperation project. This tool scenario in network p

6、lanning and design needs through accurate geographic data , field GIS geographic factors as well as other means to achieve their related businesses. Therefore, this project is a tool GIS Support.This paper analyzes the projects overall needs, describes the project objectives, context definition, inv

7、olve constraints and principles as well as project development environment, the project must provide a list of interfaces, project milestone completion time. The entire project made a four-layer structure of the project design, including the framework layer , public libraries, application layer , co

8、mponent and framework for the four -level decomposition launched a description .This article establishes the whole project is based on GNET 8.1 the lab developed a platform for the development of the entire project from the component to do to achieve functional division, and based on the actual amou

9、nt of manpower and task allocation roughly personnel.This article deals with realization of the main functions of the project include: raster data analysis, map coordinates conversion, terrain texture map generation and DEM data retrieval. For the entire project ,this project has done a lot of optim

10、ization, for example: raster pyramids, the data buffer, precast color table and so on.Finally, through the overall quality assessment, quality assessment of each dimension, defect analysis software has been reached the partners requirements, the successful completion of this project .Key Words:GIS d

11、esign;Grid analysis; Coordinate transformation; Topographical maps;DEM retrieval目录摘要iAbstractii图目录IV表目录V第1章 绪论11.1 课题背景和来源11.2 国内外现状分析11.2.1 微波规划概述11.2.2 GIS项目概述21.3 国内外GIS软件存在的问题31.4 DGIS项目研究主要内容41.4.1 栅格数据的解析41.4.2 地图资源库管理41.4.3 地图坐标系转换51.4.4 地图无缝拼接51.4.5 地图背景图生成51.5 论文研究内容以及组织6第2章 项目总体需求72.1 项目目标

12、72.2 项目上下文定义72.3 设计约束和原则82.3.1 先进性原则82.3.2 实用性原则92.3.3 稳定性原则92.3.4 扩展性原则92.4 项目开发环境92.5 项目接口列表92.6 项目里程碑完成时间122.7 本章小结16第3章 项目架构设计173.1 总体设计173.2 架构分解173.2.1 框架183.2.2 公共库203.2.3 应用层接口243.2.4 组件263.3 本章小结29第4章 基于GNET8.1平台设计304.1 GNET8.1平台概述304.2 第三方库的使用314.3 GIS组件分解324.3.1 BasicMath 组件324.3.2 FileLo

13、ader组件334.3.3 Geometry组件344.3.4 DataSrc_Spatial组件344.3.5 Projection 组件364.3.6 RGImage组件384.3.7 DMapObject组件394.4 人员分配404.5 本章小结41第5章 项目功能实现425.1 栅格数据解析425.2 地图坐标转换445.2.1 对于使用WGS84坐标的地图445.2.2 对于使用UTM的投影的地图465.2.3 对于使用非UTM的投影的地图485.3 地形纹理背景图生成485.4 地图Dem数据检索505.4.1 边界的处理:515.4.2 插值中有无效点515.4.3 链路线上取

14、点515.5 矢量数据解析525.5.1 地图属性525.5.2 存取模式525.5.3 数据处理545.6 本章小结56第6章 项目性能优化576.1 使用TIFF存储576.2 栅格金字塔576.3 数据缓冲区586.4 预制颜色表596.5 本章小结59第7章 项目测试607.1 总体质量评价607.2 各维度质量评价627.2.1 特性功能评价627.2.2 可靠性评价627.2.3 稳定性评价637.2.4 性能评价637.3 缺陷分析647.3.1 按问题严重程度分析647.3.2 按问题所属模块分析647.4 本章小结65第8章 总结与展望668.1 总结668.2 展望67参考

15、文献68作者简历70致谢71图目录图1.1 地形纹理渲染地图效果6图2.1 RTN Designer项目总体结构图7图2.2 DGIS项目接口示意图8图3.1 DGIS项目总体结构图17图3.2 框架和插件(组件)18图3.3 框架类图19图3.4 数据库记录集22图3.5 Java应用层接口24图3.6 Java应用层接口工作过程26图3.7 组件的结构27图3.8 封装的结构28图3.9 创建接口对象示例28图4.1 CRS类组织结构图37图4.2 CRT类组织结构图38图4.3 VTK可视化管线40图5.1 巴基斯坦栅格地图效果44图5.2 栅格地图示例45图5.3 栅格需绘制区域45图

16、5.4 原始UTM坐标项目46图5.5 转换后的经纬度坐标系47图5.5 颜色合成过程49图5.6 地图合成效果49图5.7 局部放大后地图合成效果50图6.1 栅格金字塔示意图58图7.1 问题单按严重程度分布64图7.2 问题单按所属模块分布64表目录表2.1 GeoMapInfo接口10表2.2 GeoDataInfo接口11表2.3 GeoDataInfo接口11表2.4 项目甘特图12表3.1 框架主要接口表20表3.2 FrameworkLib的主要函数表20表3.3 日志级别表22表3.4 日志级别表23表3.5 组件基本信息表27表4.1 第三方库使用记录表31表4.2 Bas

17、icMath基本数据结构表32表4.3 BasicMath组件设计表33表4.4 FileLoader组件设计表33表4.5 地理数据结构设计34表4.6 空间数据库结构设计35表4.7 组件接口设计35表4.8 枚举类ProjectionType36表4.9 结构体ProjectionParameter36表4.10 Raster类主要接口38表4.11 DMapObject类主要类以及功能40表6.1 读6000*6000的栅格图的所有数据时间59表7.1 被测对象质量评价60表7.2 特性功能评价62表7.3 可靠性评价62表7.4 性能测试结果:63第1章 绪论1.1 课题背景和来源自

18、从微波通信技术问世以来,微波通信已经渐渐成为是通信长途干线的主要技术传输手段。随着手机,Pad等移动设备越来越大众化,GSM,CDMA以及3G,4G网络的大规模兴建,微波设备在移动通信网络建设中的起了十分重要的角色。但是由于微波的波长短绕射能力差,必须在无阻挡的视线内传播才能完成正常通信,微波的站点的设计就需要紧密的结合GIS技术来进行支撑。本次项目来源于合作方的微波规划GIS项目,又称之为Designer GIS项目,以下简称为DGIS项目。本次项目由浙江大学智能计算与系统实验室主导开发,采用了实验室和浙江成功软件开发有限公司共同研发的大型GIS二次开发平台GNet8.1为主要开发平台。本次

19、项目合作主要是为了满足合作方的微波规划工具RTN Designer在网络规划设计场景下的需要通过精确的地理数据,实地的地理因素来规划微波网络拓扑,进行KPI计算和天线挂高计算、以及视通分析和频率分析等诸多与底层GIS技术打交道相关的业务。由于目前而言,国内的GIS软件多数还停留在业务层面,并没有太多的平台层面的软件,同时能够方便快速的支撑微波规划领域的GIS二次开发平台也就更为稀少。在微波规划领域中国外虽然有相应的产品化工具Pathloss,但其软件使用代价十分昂贵,并且不支持二次开发,无法对某些功能进行改进,不能满足合作方的需要。所以我们此次的项目是非常有挑战,且有经济价值。在这个项目中,本

20、人是整个项目的负责人,主要研究了在GNet8.1平台下对于微波规划GIS设计与核心算法研究,以满足微波规划工具RTN Designer的需求。1.2 国内外现状分析1.2.1 微波规划概述在二十世纪初,为了满足战争中通信方面的需要,人们分析微波的特性,并应用于无线通信领域,实现了无线通信领域的大跃进,直到今天,微波通信技术仍然被许多国家广泛的应用在通信领域和其它领域。统计资料显示,国外发达国家的微波中继通信在长途通信网中所占的比例高达50%以上。 其中,美国为66%,日本为50%,法国为54%1。而我国自从1956年从东德引进第一套通信设备后,经过仿制和自发研制过程也取得了很大的成就2。随着无

21、线通信技术的不断发展,微波通信在通信网中占的比例越来越大。在微波传输过程中,需要用到天线。天线的作用是将无线电波转换为导波能量用来辐射和接受无线电波。微波通信中使用的天线,通常都是架设在高台。微波通信需要靠几个甚至几十个微波站接力进行无线电波的发射和接收,以达到远距离通信的目的。而由于微波是直线传播,微波间的站点属于视距通信,两站间应无任何障碍才能进行很好的通信。如果天线架得高则受到地面的干扰阻碍就小,但是这其中设备的造价也就要提高,所以通常是因地制宜的,所以微波的站点就必须要结合GIS技术来规划。1.2.2 GIS项目概述GIS 全称是Geographic Information Syste

22、m 即地理信息项目。在1963年,加拿大测量学家罗杰汤姆林森(Roger Tomlinson)提出GIS这一术语,并建成世界上第一个GIS(加拿大地理信息项目CGIS),用于自然资源的管理和规划3。目前的GIS是一种采集、存储、管理、分析、显示与应用地理信息的计算机项目,是分析和处理地理数据的通用技术4。地理信息项目是信息产业IT的重要组成部分。它以全球地理环境项目为数据源,以计算机技术为支撑,以地理信息项目技术为核心,以“3S”(地理信息项目GIS、遥感RS、全球卫星定位项目GPS)和网络等技术的集成为手段,以政府、企业和社会公众为服务对象,具有空间数据的获取、管理、处理、分析、建模、显示和

23、网络传输功能,既能解决综合性、复杂性的规划、决策、监测、管理等问题,又能提供一般性的查询、检索服务,是典型的工程化应用技术项目5。随着社会的进步,地理信息项目的应用领域也在不断扩大,目前几乎涵盖社会经济生活的各个方面,特别在土地管理、资源环境、城市规划、测绘制图等方面得到了广泛的应用6。目前已成功地应用到了包括资源管理、自动制图、设施管理、城市和区域的规划、人口和商业管理、交通运输、石油和天然气、教育、军事等九大类别的一百多个领域7。在美国及发达国家,地理信息项目的应用遍及环境保护、资源保护、灾害预测、投资评价、城市规划建设、政府管理等众多领域8。近年来,随着我国经济建设的迅速发展,加速了地理

24、信息项目应用的进程,在城市规划管理、交通运输、测绘、环保、农业、制图等领域发挥了重要的作用,取得了良好的经济效益和社会效益9。运用GIS项目,可以建立专题信息项目和区域信息项目。专题信息项目如水资源管理信息项目、矿产资源信息项目、草场资源信息项目、水土流失信息项目等等。这类信息项目具有有限目标和专业特点,项目数据项的选择和操作功能是为特定的专门目的服务。区域信息项目如加拿大国家信息项目10、美国Oak Ridge地区模式信息项目11等等。这类信息项目主要以区域综合研究和全面的信息服务为目标,可以有不同的规模,其特点是数据项多,功能齐全,通常具有较强的开放性。地理信息项目可以与遥感图像处理项目相

25、结合。遥感数据是地理信息项目重要信息源。其实目前大多数GIS项目已揉进图像处理功能,并把它作为其一个子模块。这种应用如海湾战争期间,美国国防制图局GIS实时服务,为战争需要在工作站上建立了GIS与遥感的集成项目,它能用自动影像匹配和自动目标识别技术处理,处理卫星和高低侦察机实时获得战场数字影像,及时地将反映战场现状的正射影影像叠加到数字地图上,数据直接传送到海湾前线指挥部和五角大楼,为军事决策提供24小时的实时服务12。1.3 国内外GIS软件存在的问题纵观国内外的GIS企业以及其相关GIS软件,都还存在着很多不足和问题,主要表现在以下几个方面: 国内的GIS开发商多数是在应用层面的开发。例如

26、:以国外软件ArcGIS为基础,进行了二次开发,虽然其GIS功能比较完善,但是没有从平台层的支撑,难以解决平台的Bug,以及没有自主的知识产权。微波规划业务中,需要支持大量的不同格式的栅格数据和一些用户自定义的数据。而国内外大多GIS软件,甚至包括业内领先的ArcGIS也没有对这些数据有灵活的支持。项目要求的生成地图的性能要求比较高,国内的GIS软件大多采用GDI的显示引擎手段去绘制地图,在速度的性能要求上不太可能符合合作方的要求。1.4 DGIS项目研究主要内容根据GIS来支撑微波网络拓扑,完成 RTN Designer工具在网络规划中的设计场景。支持RTN Designer的拓扑规划、KP

27、I计算、天线挂高计算、视通分析、频率分析这5个核心业务和其他与GIS相关的业务,和业界一流微波网规工具PathLoss、Ellipse、Mapinfo等达到相同的水平。此外,除了完美的支持地图格式、地图精度、地图拼接等核心功能算法外还需要保证GIS模块的性能,使支撑工具展现层的拓扑图、剖面图、单跳设计视图都能流畅运行。1.4.1 栅格数据的解析支持导入并快速的解析SRTMV3,SRTMV4,PLANET,GTOPO30格式的地图文件,其中PLANET格式地图数据包括4栅格图层:clutter、vector、building、height,栅格图层也需要解析并建相应的数据模型保存。1.4.2 地

28、图资源库管理1、提供地图资源管理模块,对用户导入的本地地图进行管理。对于本地地图数据文件可采用关联本地绝对路径引用,也可由开发压缩地图数据模块存在安装目录下。2、提供接口维护用户导入的所有地图,用户可以新导入地图、删除以导入地图、修改已导入地图属性。3、提供接口设置导入地图的优先级,根据地图格式和精度设置,精确的地图优先级高,优先级也可由用户手工设置调整。4、用户获取地图时首先提供该区域内优先级最高的地图,优先级高的地图确实可由优先级较低的地图补充,以此类推。5、地图资源管理是软件级的,用户创建实际项目后可从地图资源池中引用项目中需要的地图,地图资源管理模块需要维护软件级地图资源池,还需要维护

29、实际项目中的实时使用地图链表。1.4.3 地图坐标系转换1.支持WGS84坐标系、平面坐标系,WGS84是球面坐标系,目前SRTM地图采用WGS84坐标,所有拓扑规划也采用WGS84坐标。2.保证无地图时,能够提供WGS84参考系,让站点链路能够进行准确定位,拓扑结构和有地图时一致。3.WGS84球面坐标系和平面坐标系之间的转换算法,不同格式的坐标系在地图导入后需要统一转化,以球面坐标系维护数据,同时提供两个坐标系之间互相转化的算法。坐标系之间要求在2500KM之内无损转换。4.坐标系模块需要提供方便的扩展性,以便以后再扩展其他坐标系,提供其他坐标系和球面、平面坐标系转换。1.4.4 地图无缝

30、拼接1.拓扑场景可能覆盖多种格式的地图资源文件,地图文件被引入同一工程项目时,要求能够对不同格式的地图统一坐标系、进行无缝和无损拼接。2.地图拼接是GIS模块的核心算法,地图拼接的质量直接影响网络拓扑规划的质量,拼接算法是此次合作重点开发的算法之一。3.拼接算法验收标准,同一地理点海拔、经纬度,两点间距离、剖面数据集和业界Pathloss工具对比,精度绝对误差1m, 相对误差0.0025%。1.4.5 地图背景图生成1.提供根据经纬度区域和UI显示尺寸参数生成BMP格式的目标背景图,背景图是GIS模块提供的地图层在展现层拓扑图上的直接显示,作为拓扑图的背景。2.背景图实时性要求非常高,因为在拓

31、扑图上移动地图区域、放大背景地图、缩小背景地图场景下都需要重新生成背景图。3.生成背景图需要具有地形纹理、渲染效果。如图1.1显示图1.1 地形纹理渲染地图效果1.5 论文研究内容以及组织论文共分为章,各章内容和组织如下:第一章绪论,主要介绍项目的研究背景和来源,国内外研究现状,以及存在的问题,项目研究的主要内容及组织结构。第二章项目总体需求,主要介绍了项目的目标,项目上下文定义,涉及约束和原则以及项目开发环境,项目需要提供的接口列表,项目的里程碑完成时间。第三章项目架构设计,提出了项目的总体架构分为框架层,公共层,应用接口层,组件这四个层次并逐一的解释。第四章基于GNET8.1平台设计,主要

32、介绍了GNET8.1的平台,以及对GIS部分分解成了若干个模块来组合来完成这个项目。第五章项目功能实现,主要从栅格数据解析,坐标系转换,背景图生成和DEM数据检索和矢量数据解析五个模块阐述了实现的具体方法。第六章 项目性能优化,主要是为了达到合作方需求而改进的变化。第七章 项目测试,为后期项目测试以及合作方对已实现项目的一个评价。第八章 结束语,对项目研究进行了总结,以及对下一步工作做了工作展望。第2章 项目总体需求2.1 项目目标本项目的目标是为解决GIS核心算法模块的开发,包括多种地图格式解析、多坐标系支持和转换、多格式地图无缝拼接等内容。合作项目保证地图格式支持完善、地图精度、地图拼接等

33、核心功能算法外还需要保证GIS模块的性能,支撑工具展现层的各种拓扑图、剖面图等GIS相关图件都能流畅运行。2.2 项目上下文定义DGIS项目是RTN Designer的一个重要组成部分,所处位置如图2.1所示:图2.1 RTN Designer项目总体结构图合作方定义了GeoMapMgr、GeoDataInfo、GeoMapInfo三个类来与外部进行交互,并传递相应的地图信息。基本的流程是:外部实体首先需将地图所在的目录传递给GeoMapMgr ,GeoMapMgr在接收到相关信息后,外部实体就可通过调用GeoMapInfo与GeoDataInfo的相关接口去获取相关地图信息。如图2.2所示:

34、GeoMapMgr是用来管理地图的,它提供了导入、删除地图,以及更新地图。GeoMapInfo主要是负责地图的显示功能,以及一些已经加载在程序中的地图的编码信息。返回给外部实体的一般是地图中具体的数据。GeoDataInfo只要是用来获取地图上经纬度有关的点的海拔高度等一些数据。图2.2 DGIS项目接口示意图2.3 设计约束和原则由于产品是针对合作方的实地微波规划开发,因此GIS部分的能力构建需要和业界一流微波网规工具PathLoss、Ellipse、Mapinfo等达到相同的水平。2.3.1 先进性原则作为RTN Designer的一个重要部分,先进性体现在技术方面:技术规划的先进性与前瞻

35、性,以确保GIS部分在今后相当一段的时期内,不断适应业务和应用的发展要求,具备良好的可用性基础,在于国际一流的软件相比较的情况下,为RTN微波规划提供良好的数据和技术支持。2.3.2 实用性原则在GIS的规划中,无论是技术方案,目标前景,都基于实际出发,充分考虑其他组件的性能需求,实用高效。2.3.3 稳定性原则RTN Designer需要根据精确的数据进行规划,任何错误都可能导致巨额资金的损失,这就要求我们必要提高GIS组件的稳定性,包括在源代码和项目层面上,必须着重稳定性安全性的实现。2.3.4 扩展性原则GIS组件必须具有良好的可扩展性。随着RTN Designer项目的不断发展,业务需

36、求也会不断提升。GIS组件必须能适应这种业务需求的扩展。其中,坐标系模块需要提供方便的扩展性,以便以后再扩展其他坐标系,提供其他坐标系和球面、平面坐标系转换,地图格式解析模块也需要提供方便的扩展性。2.4 项目开发环境合作方用户方需求是通过JAVA的应用程序来实现RTN Designer项目。我们基于了GNet8.1平台进行开发,底层实现使用了C+来实现。在应用接口层提供了JNI转换,方便了Java端的调用。平台基于操作项目:Windows 7CPP编译器: Visual Studio 2008JAVA编译器:Eclipse2.5 项目接口列表表2.1 GeoMapInfo接口接口名接口描述G

37、etBlackImageByBL根据经纬度范围和生成目标背景图尺寸获取当前背景图GetBlackImageByXY根据平面坐标XY范围和当前拓扑图尺寸获取目标背景图GetClutterCountDict根据起始点经纬度信息返回,起始点之间各层栅格地图,和各层栅格地图对应的地图个数GetLoadMap获取当前项目导入的所有地图的CodeGetMapBound获取当前项目引入地图的边界信息,如果导入多个地图,返回多个地图的综合结果GetMapHighestResolution获取指定地图上指定栅格类型的最高精度GetMapInfoByCode根据地图Code返回地图信息GetMiddleOfMap

38、取得地图中心点,当前项目如果引入多个地图,需要返回拼接后的中心点坐标GetMiddleOfMap返回指定地图的中心点坐标,笛卡尔大地坐标GetProjectMapInfo获取当前项目引入的所有地图信息HasProjection判断指定地图是否有投影HideMap根据地图标识名集合控制地图隐藏,显隐状态刷新后返回重新生成的BMP图片HideMap隐藏指定地图上的指定图层IsBuildingLoaded判断指定地图是否导入建筑物高度信息IsClutterLoaded指定地图是否导入了杂物高度信息IsHeightLoaded指定地图是否导入了海拔高度信息IsMapLoaded判断当前项目是否引入了地

39、图ShowMap根据地图标识名集合控制地图显示,修改显示属性后,返回重新生成的BMP图片ShowMap显示指定地图上的指定图层UpdateLegendCofigure图例配置修改后通知GIS模块,保存新的配置颜色,并返回新配置下的图例图片表2.2 GeoDataInfo接口接口名接口描述GetLineValueByGeoBL根据起始点经纬度信息、栅格类型、取点精度获取起始点之间直线上的所有点海拔链表GetLineValueByGeoXY根据起始点XY坐标、栅格类型、取点精度获取起始点之间直线上的所有点海拔链表GetRectValueByGeoBL根据起始点经纬度信息、栅格类型、取点精度获取起始

40、点坐标围城的矩形区域内所有点海拔链表排序方法先经度,后维度,从小到大GetRectValueByGeoXY根据起始点XY坐标信息、栅格类型、取点精度获取起始点坐标围城的矩形区域内所有点海拔链表排序方法先经度,后维度,从小到大GetValueByGeoBL根据指定的数据类型,返回对应点的海拔数据 1、当没有地图载入,即白板地图时,默认返回地物ID为-1;默认返回Height值为0; GetValueByGeoXY根据平面坐标X,Y值获取该点的海拔高度IsLineInMap根据连线XY坐标判断连线是否在地图上IsPointInMap根据点的XY坐标判断点是否在地图上TransformBLToXY经

41、纬度坐标转换为大地坐标TransformXYToBL大地坐标转换为经纬度坐标表2.3 GeoDataInfo接口接口名接口描述AddMap导入地图文件,参数是地图所在的绝对路径,返回地图解析结果信息DeleteMapByCode从地图资源池删除指定地图,地图标识名mapCode全局唯一,用于识别地图DeleteMapByCode根据MapCode批量删除地图DeleteMapByType删除指定类型的地图GetAllAvailableMap获取当前地图资源池所有可用的地图续表2.3 接口名接口描述GetAvailableMapByType返回资源池中可用的指定类型的地图ImportMap资源池

42、里的地图引入当前的项目中RemoveMap从当前项目中删除已引入的地图UpdateMapAttr更新地图属性2.6 项目里程碑完成时间由于项目时间为:从合同生效起,共计2个月的时间。所以根据此我做了一张甘特图来分配任务:表2.4 项目甘特图标号名称工期开始时间完成时间前置任务1技术调研报告8.d2013-1-4 8:002013-1-11 17:002项目原型设计5.d2013-1-14 8:002013-1-18 17:0013数据获取2.d2013-1-4 8:002013-1-5 17:004srtm v3数据的解析5.d2013-1-6 8:002013-1-10 17:0035srt

43、m v4数据的解析5.d2013-1-11 8:002013-1-17 17:0046gtopo30 数据的解析5.d2013-1-18 8:002013-1-24 17:0057planet数据clutter,building,height子图层的解析5.d2013-1-25 8:002013-1-31 17:006续表2.4标号名称工期开始时间完成时间前置任务8planet数据vector子图层的解析10.d2013-1-6 8:002013-1-17 17:0039mapinfo栅格数据的解析5.d2013-2-1 8:002013-2-7 17:00710mapinfo矢量数据的解析的

44、移植5.d2013-1-18 8:002013-1-24 17:00811金字塔生成算法移植,多通道修改成单通道栅格数据3.d2012-12-25 8:002012-12-27 17:0012金字塔生成的小文件的存储的调整5.d2012-12-28 8:002013-1-7 17:001113金字塔的每次读入内存容量的控制5.d2013-1-8 8:002013-1-14 17:001214金字塔取图的算法移植5.d2013-1-15 8:002013-1-21 17:001315金字塔其他性能优化,4000ms之内10.d2013-1-22 8:002013-2-4 17:001416金字塔

45、取图的移植的性能优化,300ms之内10.d2013-2-5 8:002013-2-21 17:001517地图管理接口设计和数据库设计。包括讨论和评审5.d2013-2-8 8:002013-2-19 17:00918地图管理中资源库查询和修改,地图优先级配置等5.d2013-2-20 8:002013-2-26 17:001719地铁管理中位片显示功能的调试5.d2013-2-27 8:002013-3-5 17:004,5,6,7,1820地图管理中坐标转换功能的调试1.d2013-3-6 8:002013-3-6 17:0019续表2.4 标号名称工期开始时间完成时间前置任务21WGS

46、84-Mercator之间的数据转换压力测试(100,1000,10000个点的性能)3.d2012-12-26 8:002012-12-28 17:0022根据起始点经纬度信息算出相应的栅格内的坐标3.d2013-1-4 8:002013-1-6 17:002123根据起始点经平面坐标信息算出相应的栅格内的坐标1.d2013-1-7 8:002013-1-7 17:002224根据一个矩阵范围的经纬度信息算出相应的栅格内的坐标矩阵3.d2013-1-8 8:002013-1-10 17:002325根据一个矩阵范围的平面坐标信息算出相应的栅格内的坐标矩阵1.d2013-1-11 8:0020

47、13-1-11 17:002426判断XY坐标判断点是否在地图上3.d2013-1-14 8:002013-1-16 17:002527判断某条直线段是否在地图上1.d2013-1-17 8:002013-1-17 17:002628给定经纬度坐标,在多个地图上按优先级获取高程3.d2013-1-18 8:002013-1-22 17:002729给定起止点经纬度坐标和点密度,获得大圆线段中点,在多个地图上按优先级获取高程序列1.d2013-1-23 8:002013-1-23 17:002830同种地图,多个导入的测试,叠加显示中接缝的处理5.d2013-2-8 8:002013-2-19

48、17:00931不同种地图,多个地图导入的测试,不同的地图分辨率下的叠加显示5.d2013-2-20 8:002013-2-26 17:003032栅格的变形处理(由经纬度栅格转为投影栅格照成的不规则梯形的显示)7.d2013-2-27 8:002013-3-7 17:0031续表2.4标号名称工期开始时间完成时间前置任务33通过矩阵的点+配色条进行位图生成,目前有通过GDI生成位片和通过GDAL生成位片5.d2012-12-25 8:002013-1-4 17:0034优化位片生成效率,hw可变,测试800*600的单图片控制在100ms之内5.d2013-1-5 8:002013-1-9

49、17:003335通过配色条生成图例的位片5.d2013-1-10 8:002013-1-16 17:003436图例配置的更新3.d2013-1-17 8:002013-1-21 17:003537通过dem点生成文件的坡度坡向图10.d2013-1-22 8:002013-2-4 17:003638矢量点图层的持久化保存,以及样式配置5.d2013-1-25 8:002013-1-31 17:001039矢量点图层的叠加出图10.d2013-2-1 8:002013-2-19 17:003840坡向图按分色图例渲染出图5.d2013-2-5 8:002013-2-16 17:003741统

50、计各个地图的数目,根据起始点经纬度信息返回,起始点之间各层栅格地图,和各层栅格地图对应的地图个数2.d2013-2-17 8:002013-2-18 17:004042获取当前项目导入的所有地图的Code,当前项目引入地图的边界信息2.d2013-2-19 8:002013-2-20 17:004143获取指定地图上指定栅格类型的最高精度,根据地图Code返回地图信息1.d2013-2-21 8:002013-2-21 17:0042续表2.4标号名称工期开始时间完成时间前置任务44取得地图中心点,当前的范围以及地图信息,获取当前项目引入的所有地图信息2.d2013-2-22 8:002013

51、-2-25 17:004345地图的图层控制,是否显示隐藏的控制2.d2013-2-26 8:002013-2-27 17:004446判断指定地图是否导入建筑物高度,杂物高度,海拔高度信息2.d2013-2-28 8:002013-3-1 17:004547JNI代码的调试5.d2013-3-4 8:002013-3-8 17:004648项目其他说明文档补充5.d2013-2-1 8:002013-2-7 17:0049源代码的圈复杂度调整和注释修补7.d2013-2-8 8:002013-2-21 17:004850平台代码裁剪模块分析10.d2012-12-25 8:002013-1-

52、9 17:0051平台代码裁剪实现15.d2013-1-10 8:002013-1-30 17:005052平台代码裁剪后调试20.d2013-1-31 8:002013-3-4 17:005153项目的集成调试5.d2013-3-11 8:002013-3-15 17:0047,52,32,202.7 本章小结本章主要是阐述了合作方所提出的项目总体需求,主要介绍了项目的目标,项目今后出的位置,即上下文定义。也定义了项目将会涉及约束和原则和项目开发的环境。罗列了项目需提供的接口列表和项目的里程碑完成时间。第3章 项目架构设计3.1 总体设计Designer GIS 由框架、公共库、GIS组件和

53、应用层接口四部分组成,如图3.1所示。Designer GIS以进程内服务的形式提供给应用软件。应用软件通过调用Designer GIS的应用层接口实现相应的GIS功能。在运行时,Designer GIS会访问文件、SQLite数据库等数据资源,实现GIS数据资源读写、配置管理、日志等相应功能。图3.1 DGIS项目总体结构图3.2 架构分解Designer GIS由4部分构成:框架,公共库,GIS组件和应用层接口。1.框架Designer GIS采用组件化的设计思想。所有面向地理信息业务功能的、平台性的程序模块都是以组件的形式提供的。框架是GIS组件的支撑平台,负责模块的注册、加载和发现。2

54、.公共库各个模块常用的一些算法和项目调用,例如常用数据结构、编码转换、数据类型转换操作、线程同步与隔离等,统一到公共库中进行管理。3.GIS组件各种GIS功能以组件的形式提供。组件具有清晰的接口,以动态链接库的形式封装;接口一致的组件可以相互替换。运行时,组件由框架动态加载。不同的组件分别负责数据库访问、空间数据模型管理、栅格影像管理、坐标变换、电子地图管理、渲染、空间分析等不同的功能。4.应用层接口应用层接口是给应用软件开发提供的API。对于C+应用,应用层接口就是框架和组件的自身接口。但是如果应用层软件是Java,就需要提供JNI转换层,以便Java程序快速开发。3.2.1 框架1) 概述

55、采用组件框架的目的是提供强制性的模块接口约束,对C+代码进行更好的维护管理。项目的整体架构是一种“框架插件(组件)”的组织方式。如图3.2所示:图3.2 框架和插件(组件)各种具体的地理计算及其数据模型作为“组件”部署到运行框架上,为GIS应用功能提供支持;各种可替代的底层资源及其适配服务,也作为“组件”部署到运行框架上,为GIS的运行提供支持。2) 运行状态框架以动态链接库形式(Framework.dll)封装。3) 主要功能所有的组件使用前,需要注册组件所在的dll,注册信息包括组件ID、版本和dll完整文件路径。运行时框架根据组件注册信息,动态装载组件所在的动态库。使用一个组件时,通过框

56、架获得组件的访问入口。4) 类图 框架的类图设计如图3.3所示:图3.3 框架类图FrameworkMngr即为框架管理器,单件Framework即为框架接口FrameworkImp即为框架的实现类RetiRegistry即为组件注册表,记录各个组件的信息ModuleCache即为组件缓存,记录已经加载的各个组件的入口对象5) 接口表3.1 框架主要接口表类名接口描述(dll函数)getFramework获取框架FrameworkregModule注册组件getModule获得一个组件的入口对象为了方便使用,提供FrameworkLib库简化Framework.dll的加载、Framework

57、的获取以及注册过程。FrameworkLib的主要函数如下表3.2:表3.2 FrameworkLib的主要函数表函数描述getFramework根据ini文件配置,完成框架的装载、组件注册以及框架获取getHostFramework一个已被加载的组件可以通过该接口,获取当前的框架对象3.2.2 公共库公共库以源码方式提供,使用公共库有2种方式:1 直接使用源码,将公共库的源文件加入编译工程;2 将公共库编译为.Lib,链接编译好的.Lib。1)CommonTypes对常用的基本数据类型进行重定义,以消除平台差异。主要工作包括:用int_32, uint_64等宏统一整数的长度和写法,消除不同

58、硬件平台、操作项目和编译器的差异。对C+标准库和boost库的包含进行统一,对C+标准库和boost库的命名空间进行统一。对常用的标准库,如、等做统一引用。定义GIS平台所特有的一些数据类型、数据结构和模板。2)System与操作项目环境相关的调用放入Lib/System目录,统一封装,避免不同平台上到处调用平台API所带来的一致性问题,其中又分为:网络:对TCP、UDP等网络协议的封装;线程:对线程、锁、信号量等多线程相关API的封装;SystemUtility:依赖于项目API的一些常用功能和操作。例如文件目录操作、文件操作、字符串编码转换、数值类型和字符串类型转换、GUID获取等。3)L

59、og日志模块包括一个运行时库Reti_Log.dll和一个编程库LogLib。a)运行时库(Reti_Log.dll)Reti_Log是一个轻量级的日志类,主要面向开始时调试,而不是企业级长期运行下的优化和问题诊断。RetiLog支持以下特性:日志级别设置;日志目录设置;支持写日志文件时,向屏幕(stdout)同步输出日志;日志文件大小限制;支持多线程写。日志格式为:“日期时间日志级别日志来源线程号源文件名行号日志内容”Reti_Log采用无缓冲的文件操作方式,无论应用程序崩溃,还是调试模式下运行到断点,都能在日志中精确反映程序的执行情况。缺点是:低效率,在生产版本中使用时,应当避免配置DEB

60、UG以下的日志级别;多线程环境下,日志模块本身的线程隔离机制可能影响调用程序的并发行为,从而掩盖潜在的编程错误。运行时库的实现主要在Log类中完成。b)编程库(LogLib)编程库是调用运行库的前端,是GIS项目使用的日志接口。接口由RetiLog类和一组宏构成。表3.3 日志级别表类函数描述RetiLogstatic initLogSysEx初始化日志模块,包括日志文件位置、日志级别等(宏)FATAL_LOG ERROR_LOG WARNING_LOG INFO_LOG DEBUG_LOG TRACE_LOG对应不同日志级别的宏,每个宏有2个参数:来源和内容。线程号、源文件名和行号会自动加上。日志级别从

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!