- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简析开源Boot库在网络的应用论文
简析开源Boost库在网络的应用论文
随着地理信息产业的建立和数字化信息产品的普及,地理信息系统(GIS)已经深入到各行各业,成为人们生产、生活、学习和工作中不可缺少的工具和助手。GIS技术的发展,离不开信息技术的革新。随着信息技术的发展,很多新概念、新理念提出并得到应用后,很快就会被GIS软件吸纳进去。
地理网络分析是地理信息系统的核心功能,也是地理信息系统与其他计算机系统的根本区别。数学上的网络图在地理网络建模以及网络分析运算中仍具有重要的作用。同时,其相对的独立性更容易形成独立的模块化、组件化的软件包。目前,已经有很多这样的软件包或独立的类库存在,既有商业版本的,也有开源性质的,也包括基于不同操作平台和利用各种程序语言开发的,这其中开源的BoostC++类库就是其中优秀的代表之一。
1GIS系统开发语言与BoostC++库
在地理信息系统(GIS)的开发过程中,程序语言的选择具有重要的意义。虽然随着软件开发平台和编译技术的不断发展,程序语言有着相互借鉴和融合的趋势,但不同的程序语言在软件成果的运行效率、可移植性、可复用性以及与软件设计平台的结合等方面存在很大的差异。C++作为GIS软件开发的主要程序语言,是专门为扩展性而设计的,语言为泛型构造提供的便利极为强大,目前仍然具有不可或缺的作用。随着C++语言的高级工具和技术不断涌现,开发复杂应用软件正变得更简单、更高效。同时,开放源代码软件运动的兴起和发展,不但推动了C++语言自身的不断完善,也推动了GIS开发技术的快速发展和GIS应用领域的不断拓宽。Boost库是一个可移植、开放源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。Boost是由C++标准委员会库工作组成员发起的一个C++准标准库,相当于C++标准模板库(Standertemlatelibrary,STL)的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化,对比STL,Boost更加实用。STL主要集中在算法部分,而Boost包含了不少工具类,可以完成比较具体的工作。Boost库覆盖了广泛的应用领域,从数学应用库到智能指针,从模板元编程库到预处理器库,从线程到lambda表达式等。Boost可以在目前存在的绝大多数操作系统(Windows,Unix,Linux,Solaris,MacOSX等)平台上使用,同时可以应用目前使用的各种C++程序开发平台进行编译和连接,还为很多目前流行的程序语言(Java,Python,Basic,C#等)提供相对统一的接口,方便了其他语言的应用。基于Boost库进行程序设计和开发,使得利用C++语言进行GIS开发更为优雅、有活力、高效。
2Boost在地理网络分析中的作用
地理网络分析是空间分析的一个重要方面,是依据地理网络拓扑关系,并通过考察地理网络元素的空间、属性数据,对网络的性能特征进行多方面的分析计算。地理网络分析主要包括路径分析、服务中心范围的确定、可达性分析等,其核心是对最短路径的求解。地理网络分析作为GIS应用最主要的功能之一,其主要目的是对地理网络(如交通网络)、城市基础设施网络(如各种网线、电力线、电话线、供排水管线等)进行地理分析和模型化。
按照数学意义上的看法,可以把地理网络看作图,因而可以按照图论的理论基础来描述地理网络,并可以利用图论的研究成果来解决地理网络中的网络分析问题,图论中的网络概念和一些分析算法在地理网络的表示和网络分析中具有重要的意义。BGL作为Boost的工具类之一,是一个处理图数据结构的库,可以应用于地理网络分析的很多领域。1)BGL的设计受到STL的重要影响,包括多个不同的泛型图数据结构:邻接链表、邻接矩阵和边列表等,作为网络表示和存贮的基础。同时BGL提供了一个标准化的用来访问图数据结构的通用接口和遵照这套接口的通用类。这套接口不但隐藏了繁杂的内部实现,同时作为一套开放的规范化的接口,一些用其它图库实现的接口也能够使用BGL中的各种通用算法。
2)BGL提出了基于泛型的图算法,其算法由一组核心算法模型(用泛型算法实现)和一组较大的图算法组成。核心算法模型包括广度优先搜索、深度优先搜索、均匀开销搜索。BGL中的图算法被写成了一种把具体数据结构细节抽象出来的接口,本身并不进行任何有意义的计算,仅仅是为了构建图算法而已。每一个算法都是用数据结构无关的方法写出的,允许一个单独的函数模版处理多种不同的容器类。同时BGL中的图算法是可扩展的,用户能够通过函数对象改写和定制算法,以处理特定领域的问题。BGL中的图算法当前包括:Dijkstra最短路径、Bellman-Ford最短路径、Johnson任意两点间最短路径、Kruskal最小生成树、Prim最小生成树、连通分支、强连
文档评论(0)