基于OpenWebGlobe的网络三维GIS的设计与实现论文_张剑

浙江省地理信息中心 浙江杭州 310012

摘要:本文介绍了OpenWebGLobe这一开源三维GIS软件,并在WebGL技术基础上利用该软件实现了海量地理空间数据的在线三维可视化展示。该技术不受插件限制,实现方式更为灵活便利,能满足通用的三维展示需求。

关键字:三维GIS;WebGL;OpenWebGlobe

Abstract : This paper introduces OpenWebGLobe, an open source 3D GIS software, and uses this software to realize the online 3D visualization of massive geospatial data based on WebGL technology. The technology is not limited to plug-ins, to achieve a more flexible and convenient way to meet the general needs of three-dimensional display.

Keywords: 3D GIS;WebGL;OpenWebGlobe

1 引言

随着地理信息和IT技术的发展,三维GIS成为研究热点,三维可视化已经成为一种重要的可视化分析和地理空间参考工具。利用虚拟的三维球体通过网络展示海量的影像、高程及其它地理空间数据成为可能。常用的web端的三维可视化主要采用Direct3D、ActiveX控件等方式,通过将程序宿主在浏览器中实现三维数据的读取和展示,然而采用这些插件的方式对用户的限制较高,通常需要用户安装额外的客户端,对浏览器也有一些必要的限制,使用起来非常麻烦。目前各浏览器广泛支持HTML5、WebGL等新技术,使得基于网络的三维GIS成为一种可能,OpenWebGLobe就是一款基于WebGL技术实现的网络三维GIS软件。

2 WebGL简介

WebGL是免费授权、跨平台的应用程序接口API,它将OpenGL ES 2.0作为在HTML网页内的3D绘图环境,作为低级别文档对象模型接口开放。WebGL可以为HTML5 Canvas提供硬件3D加速渲染, Web开发人员可借助系统显卡在浏览器里更流畅地展示3D场景和模型,还能创建复杂的导航和数据视觉化。它是使用JavaScript编程开发语言开发适合动态3D网页应用的理想工具,并已被主流互联网浏览器集成,目前Google公司的Chrome、Mozilla公司的firefox、微软的Internet Explorer 11等主流浏览器都支持WebGL。

WebGL完美地解决了现有的Web交互式三维GIS的两个问题:第一,它通过HTML脚本本身实现基于Web的网络三维GIS的功能,无需任何浏览器插件支持;第二,它利用底层的图形硬件加速功能进行的图形渲染,是通过统一的、标准的、跨平台的OpenGL接口实现,具有高性能、跨平台的特点。

3 OpenWebGlobe简介

OpenWebGlobe是基于WebGL在线构建三维GIS的一个开源项目,主要包括三维数据处理模块(DataProcessing)、三维可视化模块(WebViewer)和Web开发包(WebSDK)三个部分。

DataProcessing模块主要是在服务器端对地理空间数据进行预处理与加工,主要包括空间坐标转换、建立多尺度的金字塔图层、缓存数据等。将海量影像数据以影像金字塔的方式进行切片和分层,以适应网络的传输;将高程数据处理为三角网数据,并以文本的方式将数据传输给客户端供Web进行解析。

WebViewer模块主要用于展示三维数据,其通过网络实时从服务器上请求DataProcessing处理完成的影像瓦片数据和高程三角网数据,以高度并行和多尺度的计算环境去处理这些地理空间数据,利用WebGL技术实现在浏览器中快速展示三维数据。WebViewer能够支持多种数据类型,如影像数据、高程数据、兴趣点、矢量数据和3d模型等。

WebSDK模块主要用于Web端的开发,该模块采用Javascript语言,利用面向对象的开发模式进行开发,该模块的主要类结构如图1所示。

OpenWebGlobe利用WebGL技术和HTML的特性,能够在浏览器中以无插件的方式快速高效的展示一般三维GIS软件所拥有的功能,其功能主要有:

海量影像数据的展示

大尺度的地形数据渲染

兴趣点数据加载

三维模型数据加载

OGC服务图层叠加

4 基于OpenWebGLobe的三维GIS实现

利用OpenWebGlobe展示三维空间数据,主要为以下步骤:

1)利用WebGL的Canvas,初始化OpenWebGlobe的上下文环境,并创建三维虚拟球。

//创建三维上下文环境

varctx=ogCreateContextFromCanvas("canvas",true);

// 创建三维虚拟球

var globe =ogCreateGlobe(ctx);

// 设置三维球的背景色

ogSetBackgroundColor(ctx,0.2,0.2,0.7,1);

加载影像数据

var imgBlueMarble500 =

{

url:["http://www.openwebglobe.org/data/img"],

layer:"World500",

service :"i3d"

};

ogAddImageLayer(globe, imgBlueMarble500);

3)加载兴趣点、三维模型等其它专题数据

var scene = ogGetScene(ctx);

var world = ogGetWorld(scene);

//创建兴趣点图层

var poilayer = ogCreatePOILayer(world, "pois");

//创建兴趣点

var NewPoiDefinition = {

icon: "http://www.openwebglobe.org/data/media/cycling.png",

position: [x,y,z], //x,y,z三维坐标

size: 50,

flagpole: true

};

poi = ogCreatePOI(poilayer, NewPoiDefinition);

5 总结

OpenWebGlobe基本上能满足通用的三维展示需求,由于采用的非插件机制,更加易于用户接受,而且不受ActiveX、OpenGL等插件的限制,利用WebGL能够非常灵活地在三维球体上进行界面的定制。OpenWebGlobe目前还没有提供丰富的三维空间分析功能,对于空间分析要求高的需求不能满足,但随着硬件的升级和WebGL的发展,这一需求也一定会满足,基于WebGL的三维GIS功能将越来越强大。

参考文献:

[1]http://www.openwebglobe.org.

[2]曲鑫,殷福忠,曲林. 基于OpenGL的3维虚拟林相研究[J]. 地理信息世界,2008,8:61-66.

[3]徐泽骅,李胜,汪国平. 基于OpenGL的地图渲染引擎设计与实现[J]. 地理信息世界,2015,12(22):32-36&50.

[4]聂小波,吴北平,何保国. 基于ArcGIS Engine的专题图模块的设计与实现[J]. 地理空间信息,2006, 4(1):12-14.

[5]张帆,薛丹,李军,景宁. 基于WebGL的城市三维场景可视化研究[J]. 计算机科学与技术汇刊,2014,3(2):48-54.

[6]谢磊. 基于WebGLS的三维地形可视化研究[J]. 科技视界,2015,13:138-141.

论文作者:张剑

论文发表刊物:《防护工程》2017年第6期

论文发表时间:2017/7/17

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于OpenWebGlobe的网络三维GIS的设计与实现论文_张剑
下载Doc文档

猜你喜欢