二三维部分GIS框架分析—目 录
一、部分GIS框架及平台
1、2D地图框架
2D地图框架主要是应用于二维的地图应用开发,二维地图由于多年的发展,已经比较成熟,框架提供的接口也都比较丰富,可以满足不同的二维应用的展示、分析需求。
2、3D地球框架
3D地球框架主要是以地球为视角来对大范围的场景进行浏览和管理。可以结合OGC服务、倾斜摄影、点云及建筑模型等数据进行加载展示。
3、3D场景框架
3D场景框架,在局部范围及场景下有广泛的应用,不一定需要结合GIS,如楼宇的结构、设备间的数据流转、设备故障定位、医疗手术模拟等场景的应用。
二、WebGIS开发框架介绍
GIS相关的开发框架是比较多的,既有收费的,也有开源的,还有免费的;各自有各自的优势,弱势。
收费的框架一般较为成熟,基础的、专题的功能多、封装完善、基础的Bug少、有专有的示例网站及人工技术支持。但二次开发所能实现的功能,严重依赖框架的能力,框架没有的能力,可能无法用其他方式实现。如:Esri的ArcGis系列产品及框架、SuperMap系列产品及框架等。
开源的框架一般基本的功能完善、有社区支持、示例较多,可结合许多个人及组织在框架上定制开发的开源组件,灵活的实现各类功能。但一般开源框架对于专题、高级的功能少,需要自己开发封装,并存在部分上功能Bug,需要使用者解决,虽然示例多,但都在各个不同网站间,需要学习者自己甄别、积累,深入学习的成本高。如:OpenLayers、Cesium、ThreeJS、BabylonJS等。
还有部分免费的不开源的框架,这类由个人或组织提供,有自己开发封装的、有基于一些开源框架进一步封装的,这些框架有些是个人学习下沉淀出来,有些是公司产品需求封装而来,对外免费使用的。该类型的问题在于受众小,更新不及时,功能基础,且二次开发的使用者无法进一步完善扩展,遇到瓶颈时,可能滞留无法解决。
像UE(虚幻引擎)、Unity3D引擎定为免费、开源与收费之间,如虚幻引擎可免费使用,并且核心代码开源,只有当您发行的商用现成品整合了虚幻引擎代码(比如电子游戏),且该产品生命周期内的营收超过了100万美元,才只需要支付5%的分成费用。而且在此情况下,这前100万美元的营收也是无需支付分成的。
当然所有的框架都有其优势和劣势,在框架的选择上需要结合自己的产品及发展方向进行选择。如GIS并非公司的所涉及的核心应用或方向,只是某些项目上使用到,那可能选择成熟、收费的框架更为合适,官方有完整案例,可快速学习上手,遇到问题可以询问技术支持人员,协助解决,网上也有较多基于框架的资料。
1、OpenLayers简介
OpenLayers是一个用于开发WebGIS客户端的JavaScript包,最初由MctaCarta公司开发,通过BSDLicense发行。OpenLayers是一个开源的项目,其设计之意是为互联网客户端提供强大的地图展示功能,包括地图数据显示与相关操作,并具有灵活的扩展机制。目前OpenLayers己经成为一个拥有众多开发者和帮助社区的成熟、流行的框架。
OpenLayers采用纯面向对象的JavaScript方式开发,同时借用了Prototype框架和Rico库的一些组件。而应用于Web浏览器中的DOM(文档对象模型)也由JavaScript实现,因此,基于OpenLayers开发的WebGIS不依赖于Web浏览器,具有跨浏览器特性,同时,OpenLayers实现了类似于Ajax的无刷新功能,可以结合很多优秀的JavaScript功能插件,带给用户更多丰富的交互体验。
在地图数据以服务方式提供的前提下,OpenLayers实现访问地理空间数据的方法符合行业标准,支持各种公开的和私有的数据标准和资源。OpenLayers支持OGC制定的WMS、WFS等网络服务规范,可以通过远程服务的方式,将