地理信息系统GIS(Geographic Information System,GIS)是计算机和信息系统技术在地理科学中的运用、发展的产物,因此其发展不仅受到GIS应用和需求的推动,同时也受到计算机和信息科学技术的影响。随着计算机、网络、数据库等技术的发展...
详细信息
地理信息系统GIS(Geographic Information System,GIS)是计算机和信息系统技术在地理科学中的运用、发展的产物,因此其发展不仅受到GIS应用和需求的推动,同时也受到计算机和信息科学技术的影响。随着计算机、网络、数据库等技术的发展以及应用的不断深化,GIS技术的发展呈现出新的特点和趋势,基于互联网的WebGIS就是其中之一。WebGIS是将Web技术应用于GIS技术开发的产物,是一个交互式的、分布式的、动态的地理信息系统。WebGIS以其易用性、开放性、全球性等特性,广泛的应用于传统的国土、环境等政府管理领域,以及导航、抢险救灾、LBS(基于位置的服务)、城市设施管理等和人们生活息息相关的方面。WebGIS的兴起和发展的需要,众多的GIS厂家都发展了自己的商业WebGIS产品如ESRI公司的IMS产品系列、MapInfo公司的MapXtrme产品系列、SuperMap IS、Geo-Surf等。但商业WebGIS产品由于可扩展性较弱、价格普遍昂贵、数据和操作共享困难等不足,难以满足低成本和高定制性的需求。基于开源软件的WebGIS由于其灵活和低成本等特性越来越受到开发者和公司的重视,涌现出许多成熟的产品。互联网的发展和移动终端的普遍,涌现出许多社交平台和软件,如QQ、微信(WeChat)、BBS、博客(Blog)等。人们交流的需要每天会通过这些软件和平台记录和分享身边发生的事,产生大量的数据。通过网络爬虫对这些数据的获取和筛选可以获得许多人们分享的和位置相关的信息,并借助WebGIS系统实现可视化可以帮助居民了解身边发生的事,为人们的生活提供方便。本文基于***和开源技术对这样的WebGIS系统进行研究和开发。首先对Web和WebGIS的发展和应用状况进行讨论,其次介绍系统搭建的相关技术支持,网络爬虫、***、开源软件、系统的架构等,最后对系统进行详细的设计,通过网络爬虫对数据的获取以及系统功能的展示,实现了系统对多种数据源的显示、基本操作、Popup实现等功能。
随着软件技术的迅速发展,面向对象程序设计逐步成为编程架构技术的主流,而目前关系型数据库仍然是绝大多数应用系统存储数据的首要选择,两者之间存在模型理论与元数据描述的差异,极大的影响了软件应用的开发效率。于是,对象关系映射(Object-Relational Mapping,ORM)框架应运而生,其良好地解决了对象模型和关系模型之间存在的“阻抗不匹配”问题。而近年来,一门新兴的服务器语言***的诞生,为应用服务器开发带来了全新的体验。由于其事件驱动的非阻塞I/O运行模式,使得服务器在高并发请求下对IO密集型操作的处理更加高效,在越来越多的服务器开发中得到应用与支持。但***技术的发展时间较短,大量应用开发框架还处于发展阶段,尤其在ORM技术方面尚未存在极为优秀的框架设计。本文对目前主流的*** ORM框架进行源码分析,发现存在以下几个方面的不足:(1)对象持久化操作需要翻译成标准SQL才能执行,而现存框架处理冗余较多,导致翻译转换效率低,严重影响了框架的执行性能;(2)缺乏在异步编程中,对数据库连接对象的复用机制,导致每个异步任务重复创建连接使用,造成资源和时间的浪费;(3)在对象持久化过程中,未提供应用程序与数据库之间的数据状态同步机制,可能导致脏数据操作和增加编程逻辑。本文目的设计并实现了一款基于***的ORM框架以解决主流框架存在的不足,具体工作如下:本文首先对ORM框架的发展状况与技术理论进行介绍,阐述目前基于***运行环境的主流框架优缺点。然后,结合持久层的开发需求,设计实现了框架的整体结构,并在完整覆盖框架内容的基础上,完成了以下几点优化:(1)简化翻译过程的冗余处理,提高框架的翻译性能;(2)通过***中Async Local Storage异步本地存储器,模拟类似于其他语言的线程安全机制,简化异步编程中对数据库连接对象的复用;(3)设计一种对象状态管理模型机制,解决应用程序与数据库之间数据状态的同步问题,在降低频繁的数据检测基础上避免数据误操作。最后,本文完成框架的全面测试。同主流***的ORM框架进行对比,提供了更加简洁的编程方案,并在执行效率上有明显提升,证明了框架设计的合理性。目前,本文框架Relaen经过多次版本迭代,已完成稳定版本的发布,在***的包管理平台Npm上有6000+下载量。
暂无评论