APP下载

基于Google Map的测量数据可视化研究

2015-03-30陈春莹邹进贵

测绘通报 2015年1期
关键词:可视化建筑物建模

陈春莹,邹进贵

(武汉大学测绘学院,湖北 武汉430079)

一、引 言

目前我们正步入信息化的时代,信息的获得和提取是作出科学决策的关键[1]。在信息获得和提取过程中,获取信息的速度取决于信息的综合管理和信息的形象直观的表达[2]。随着测量方法和测量精度的提高,数据的获取变得更加简单,但是大量的数据造成了数据处理过程中的麻烦,而数据可视化可以将简单的数字变成可以直观分析的图、表等,更有利于信息的存储和管理。

在互联网高速发展的时代,一个网页可以做很多事情,使得信息共享和分析更加便捷。B/S的结构使得信息交互更加便捷,克服了软件平台的限制。研究高效、方便、实用的测量数据网络处理系统成为一大热点[3]。

本文主要是结合Google Map API和B/S的结构框架[4],研究基于Google Map的测量数据可视化,使得测量数据可以直观地显示在谷歌地图上,方便后期数据处理;同时,可以随时将控制点数据可视化表达,便于野外测量等。

二、理论基础

1.Google Map API

Google Map API是利用JavaScript语言,使得用户在网页中嵌入Google地图。它的具体功能是通过API提供的各种接口类实现的,主要包括Map类、LatLng类、Polygon类,以及各种事件响应函数。

(1)Map类

Map类是Google Maps API的核心内容,Map实例是所有Google Maps应用的重点对象,会贯穿整个应用项目的全部。此类的对象可以在页面上定义一个单个的地图。Map类的构造函数为:

Map(mapDiv:Node,opts?:mapOptions),用户可以使用传递的任何(可选)参数,在指定的HTML容器(通常为DIV元素)中创建新的地图。地图的大小、类型、背景色、拖放的光标类型等基本信息均可以通过构造函数指定。Map类常用的方法有:set-Center、getCenter()、getZoom()、addControl、setMap等。

(2)LatLng类

构造函数为LatLng(lat:float,lng:float),是以纬度和经度表示的地理坐标点。LatLng的坐标不能修改。如果想要计算其他点的坐标,必须新建一个LatLng对象。主要方法有:lat()返回点的纬度值、lng()返回点的经度值。

(3)Polygon类

一系列有序坐标组成了Polygon对象。多边形定义闭合区域。多边形选项包括:多边形边缘“笔触”的粗细程度、自定义的颜色和不透明程度,以及封闭区域“填充”的不透明程度和自定义的颜色,用十六进制数字HTML样式表示自定义的颜色。

2.可视化处理原理

目前传统的三维可视化建模方法有:基于摄影测量获得遥感影像的三维建模方法[5]、基于激光雷达的三维建模方法、基于二维GIS的三维建模方法[6]、基于CAD的三维建模方法[7]等。本文采用一种新的可视化方法,可以随时在浏览器上获取数据的简单的三维可视化模型。

(1)坐标转换

用户在谷歌地图上得到的坐标是以经纬度表示的世界坐标。试验发现,在较小范围内,可以将其坐标系看成是平面直角坐标系。因此,可以利用坐标转换的“四参数”转换原理,将世界坐标系和测量坐标系进行转换,坐标关系如图1所示。坐标转换公式为

图1 坐标关系

(2)测量数据可视化

为了在平面的地图上看出建筑物的简单轮廓,本文建立了如图2所示的点位坐标关系图,各点之间坐标关系为

图2 点位变换原理

求得P1~P4的坐标之后,根据用户输入的建筑物的层数信息,将4个点的纬度值同时增加,从而求得建筑物顶端四边形的坐标,并建立相应的四边形,得到建筑物的简单三维模型。

三、编程实现与应用

在以上研究基础上,在ASP.NET下新建网站[8],以c#和javascript作为开发语言、SQL Server作为数据库平台,生成网页。在.aspx文件下编写谷歌数据接口程序,对谷歌地图进行二次开发;在.aspx.cs文件里编写对数据的处理程序。

用户登录后,可以通过文件上传,将需要的信息文件上传到服务器上面,并对上传的文件添加备注等信息。上传后的文件可以查看系统为其重新编号的新文件名,后续使用的文件将用其新文件名。

文件重命名的主要代码是:

DataView results=(DataView)MaxFileID.Select(DataSourceSelectArguments.Empty);

int FileAddID=Convert.ToInt16(results[0][0]);∥获取数据库中最大文件ID fileupload.SaveAs(path+FileAddID+newext);

1.控制点信息可视化

控制点可视化管理系统主要是将已有的控制点信息通过.xls文件导入并标记在谷歌地图上。当把鼠标放置在标记点上时会显示标记点的点号,当点击标记点时,会显示标记点的点名,并且在右侧空白区域显示标记点的经纬度坐标等详细信息。结果如图3所示。获取标记点信息的主要代码是:

var

nodes=xmldoc.getElementsByTagName("marker");

var msg_lat=nodes[i].getAttribute("纬度");

var DMsg="点名:"+msg_name+' '+"纬度:"+msg_lat+' '+"经度:"+msg_lng+' '+"高程:"+msg_h+' '+"详细信息:"+msg_msg;

createMarker(point,DMsg,"#"+msg_num);

图3 控制点信息可视化

2.建筑物的三维可视化

建筑物的三维可视化系统主要是利用在谷歌地图上刺取同名点,求得谷歌地图经纬度坐标和测量坐标之间的转换参数;也可以在参数文件框内输入转换参数文件,将待转换的测量点标记在谷歌地图上。

在地图上用鼠标拖动框取标记点,并输入层数信息,就可以对建筑物进行简单三维建模,结果如图4所示。用户操作界面如图5所示。转换后的测量点坐标通过xml文件传递到前台.aspx获取,主要代码是:

double y2=(1+m)*(sa*x1-ca*y1)+dx;

double x2=(1+m)*(ca*x1+sa*y1)+dy;

XmlElement xe1=xd.CreateElement("coordinate");

xe1.SetAttribute("lat",x2.ToString());

xe1.SetAttribute("lng",y2.ToString());

图4 武汉大学建筑物的可视化模型

图5 测量数据可视化操作界面

四、结束语

本文主要是研究如何将已有的测量数据在谷歌地图上可视化,充分应用在测量前期路线规划和后期测量成果展示中。本文主要工作是结合B/S模式,将谷歌地图作为可视化表达的工具,根据谷歌地图数据存储形式,研究现有测量数据在谷歌地图上表达的转换模式,将建筑物在地图上进行三维显示。

与其他三维建模软件相比,该系统的优势在于建模简单,方便,不受限于环境;网络化的系统,只需要有最简单的浏览器软件,省略了软件安装的各种麻烦和限制。

[1] 何全军.三维可视化技术在地理信息系统中的应用研[D].吉林:吉林大学地球探测与信息技术学院,2004.

[2] 马丽丽.探测GIS中三维可视化的研究与设计[D].成都:成都理工大学,2007.

[3] 胡荣明,杨成斌,陈晓娣.测量数据处理的网络化模式[J].测绘通报,2014(6):71-74.

[4] AKANBI A K.Integration of a City GIS Data with Google Map API and Google Earth API for a Web Based 3D[J].International Journal of Science and Research,2013,2(11):200-203.

[5] 赖玲莉,许妙忠,李明.基于摄影测量的高精度三维城市建筑物建模技术[J].测绘信息与工程.2007,32(5):24-27.

[6] RANZIGNER M,GLEIXNER G.GIS Database for 3D Urban Planning[J].Compute.,Environ.and Urban Systems,1997,21(2):159-173.

[7] 陈谊,孙悦红,牛兵.基于CAD数据的3D场景建模及演示技术研究[J].系统仿真学报,2007,19(7):1504-1506.

[8] 李千目.ASP.NET程序设计与应用开发[M].北京:清华大学出版社,2009:3-4.

猜你喜欢

可视化建筑物建模
基于CiteSpace的足三里穴研究可视化分析
思维可视化
邻近既有建筑物全套管回转钻机拔桩技术
现代中小河流常用有坝壅水建筑物型式探讨
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
基于CGAL和OpenGL的海底地形三维可视化
描写建筑物的词语
“融评”:党媒评论的可视化创新
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真