论文部分内容阅读
Internet技术是GIS到WebGIS最直接、最有力的推动者。在全球数字化、一体化和构建数字城市的浪潮下,WebGIS的研究、应用愈演愈烈;而在数据量越来越大的同时,分布式WebGIS的研究也就变得刻不容缓。各种新的Web技术在WebGIS中发挥的淋漓尽致,针对WebGIS的新技术也层出不穷,如:JavaApplet、SVG、XML、ActiveX等等。以上所有技术都是基于同一种开发模式——基于网络GIS组件开发。直到一天,Google Maps诞生了,大家才意识到原来WebGIS还可以如此开发——基于Ajax技术开发。
基于Ajax的WebGIS开发模式完全颠覆了传统的WebGIS开发模式,开发商不再需要花大量的钱去购买二次开发组件;开发者也可以避免以前那些繁琐的部署工作;用户不再需要长时间的等待,页面不再需要不停的刷新。出现在用户面前的是具有价格低廉、部署方便和简单,互操作性强、不需要刷新页面、速度快等特点的新型WebGIS。
基于Ajax的分布式WebGIS开发模式采用图片预先生成的方法法,先将地图在不同的比例尺下按一定的大小进行裁切,将图片按金字塔的方式存储。它最大的特点就是在客户端采用Ajax引擎处理事务,通过Ajax引擎跟服务器通讯。这样,可以使客户端和服务器端负载均衡,合理的利用资源,加快用户的浏览速度。
本文以“湖北省电子政务一空间基础地理信息系统”(简称HBGIS)为实例,经过对HBGIS的分析、设计和实现等过程,学习和掌握Ajax在分布式WebGIS中的具体应用情况。通过在分布式WebGIS中应用Ajax技术,总结出在分布式WebGIS中应用Ajax技术的关键技术和优缺点。
本文的研究内容主要有以下几点:
1、了解当前国内外Ajax在分布式WebGIS应用的现状,存在的优缺点,然后确定本课题的预期目标、所采用的技术路线和研究方法。
2、对HBGIS进行需求分析、设计,确定系统中的重要模块,关键技术,然后各模块独立设计和完成。
3、设计一种裁图算法:按四叉树模型裁切、可以裁切任意大小tif、jpg和png等格式的图片。
4、在客户端设计一个Ajax引擎,用以代替传统WebGIS中的组件。在引擎中设计图片还原算法和地图操作功能。
5、对上述成果进行整合,实现HBGIS的全部功能,使系统能正常运行。
本文取得的主要成果包括以下几个方面:
1、在掌握计算机图形学、数据结构和计算机图像处理等理论的基础上,为了达到图片预先生成的效果,满足Ajax引擎和系统的需求,设计出金字塔算法对图片进行裁切。实验证明,该算法裁出的图片效果良好、不存在图像失真、信息遗失等问题,裁切速度、处理图片的格式和大小都符合Ajax引擎和HBGIS设计的要求。
2、在上述裁图算法的基础上,开发了两个裁图工具,一个是基于Eclipse平台的底层开发,另一个是基于ArcGIS平台的二次开发,都是利用Java开发语言。且这两个工具可以作为独立模块使用。
3、利用JavaScript面向对象技术、DOM、DHTML和XML等Ajax组合技术开发了客户端的Ajax引擎。该引擎采用纯面向对象技术进行封装,主要负责客服端的事务处理、和服务器端交互数据,合理的减轻服务器负担、使客户端和服务器端负载平衡。而且该引擎初步实现了WMS和WFS服务。可以在以后类似的项目中直接使用。
4、基于Eclipse平台、Tomcat服务器,使用Java高级面向对象语言,开发了HBGIS系统。HBGIS运行状况良好,在界面上、功能上都达到了用户要求。
5、与传统的WebGIS相比较,基于Ajax开发的WebGIS系统减轻了服务器,使客户端和服务器端负载均衡、所以在同等的软件、硬件环境下,浏览速度明显加快。
6、因为Ajax具有异步交互功能,与传统的WebGIS相比较,基于Ajax开发的WebGIS系统在用户的体验方面明显增强。
7、传统的WebGIS是基于组件的二次开发,开发者往往不需要去关注在客户端访问服务器。虽然这样可以减轻开发任务、降低难度,但同时也限制了开发者的思维和创新。基于Ajax的开发模式,开发者可以在客户端直接访问服务器端,可以在服务器端随心所欲的构想自己的代码,实现自己想要的功能。
8、传统的WebGIS由于基于组件开发,开发者不能随意去扩充它的功能,就会出现组件的很多功能可能用不上,想要的功能组件没有。基于Ajax开发模式,开发者可以根据项目的实际需求去扩充功能。所以,基于Ajax的WebGIS具有良好扩充机制。
基于Ajax模式的分布式WebGIS与传统的分布式WebGIS相比,在功能还不是很完善,如暂时还未能实现空间分析功能、面状地物的标注和属性查询等功能。但它存在的优势足以让开发者不停的探索,发掘它更多的潜力,实现更多的功能。所以,基于Ajax的分布式WebGIS的研究具有现实意义和实用价值。