互联网地图2.5维建筑物构建方法

(整期优先)网络出版时间:2021-08-31
/ 2

互联网地图 2.5维建筑物构建方法

李晓静

中国移动辽宁公司位置服务中心 110179

摘 要:随着计算机技术以及网络技术的飞速发展,二维电子地图已不能满足信息化日益发展的需求,2.5维地图是传统二维地图和真三维地图之间的一种产品,具有以二维地图的数据量和传输速度展示近似三维地图的效果,在互联网地图具有广泛的应用前景。本文研究基于MIF文件的2.5维建筑物构建原理及实现方法,开发了相关工具生成2.5维建筑物数据,基于ArcGIS实现建筑物三维展现效果。

关键词:2.5维 建筑物立体

1.概述

近年来,随着计算机技术和网络技术的迅速发展,以地理信息技术(GIS)为基础的各种地图应用和地图服务已经走进人们的日常生活。现阶段已经有很多成熟的二维电子地图产品,如百度地图、高德地图,正在逐步向社会各个领域推广,新兴的地图服务也越来越被更多人接受。但二维地图并不能真实完整反应现实世界,三维地图表达现实世界成为GIS发展的一个新方向[1]。三维电子地图是以三维电子地图数据为基础更形象的表达现实世界。但目前基于B/S结构的真三维场景发布效率、数据处理、网络传输等方面具有较大的技术难度,且成本较高。地图产品要求建设成本低廉、网络传输速度快等,三维地图产品在这两方面均受限制。一种数据量小、网络发布简单、传输快,且可展示三维立体效果的2.5维电子地图开始被人们接受。

2.5维是将三维立体按照一定的投影规则映射到某一平面上,以展示三维立体效果的二维图形[2]。2.5维电子地图除了继承二维电子地图在数据采集、分析与处理等方面的强大功能外,其直观和真实的空间表现能力,弥补了二维GIS图形表现的局限性[3]。相对于三维电子地图来说,2.5维电子地图数据量更小,后台运行更快,解决了网络发布及传输问题,又可以获取类似三维的渲染效果,满足了三维仿真的高真实感,因此应用比较多。

百度地图和高德地图显示的建筑物即2.5维。ArcGIS制图表达方法按照阴影渲染原理,也可实现建筑物立体效果[4],但不同楼高的建筑物立体面一样,建筑物立体效果不明显。本文研究基于建筑物地理坐标和高度,通过计算建筑物组成点的可见性,计算建筑高度在地面的阴影长度,构建可见点立体面,剔除被遮挡的立体面,实现将建筑物mif数据生成2.5维面状shp数据以展示三维立体效果。

2.2.5维建筑物构建方法

2.1 百度地图建筑物立体效果及建筑物MIF数据分析

2.1.1百度建筑物分析

百度地图显示的建筑物,不同高度建筑物立体效果可以明显区分出来,图1为百度地图建筑物显示效果,从图中可以看出:

1.地图上显示建筑物由白色顶面和灰色立体面两部分组成;

2.建筑物顶面和底部平面图形状相同,但位置向上偏移;

3.立体面的计算是按照12点钟方向计算的,只显示了正对着的这面,而没有显示侧面;

4.高度不同建筑物顶面偏移不同。

612da1c9a55c9_html_8440cbf00c49d2e6.png

图1 百度地图建筑物显示效果

经过以上分析,要构建互联网地图显示的2.5维建筑物,需要计算建筑物偏移量、构建建筑物顶面和立体面。

2.1.2建筑物MIF数据

建筑物数据是MIF(Memory Initialization File)文件,包含mif和mid两个文件。mif文件有两个区域:文件头区域和数据节,文件头中保存了如何创建MapInfo表的信息,数据节中则是所有图形对象坐标序列。mid文件存储了建筑物的ID、高度等属性数据。构建2.5维建筑物时需要同时读取mif和mid文件,从mif文件得到mid文件各数据含义及每一建筑物面坐标序列,从mid文逐行读取建筑物其他属性,本次2.5维建筑物构建所需关键信息包含建筑物坐标序列和高度。

2.2 2.5维建筑物构建方法

2.2.1 计算点的可见性

通过分析百度地图建筑物,只有某一角度方向的点有立体面,这些有立体面的点本文定义为可见点。按12点钟方向绘制立体面时,所有需要绘制的立体面,都是从下方向上看,能看到的点组成的面:

612da1c9a55c9_html_fe9db67ce1b7fdf1.gif612da1c9a55c9_html_3cb6b6238e78bd8f.gif

图2 点可见性示意图

点的可见性判断原理:

  1. 从该点按视角绘制直线,与平面图中其他边相交次数为0时,该点可见,且无遮挡;

  2. 当相交次数为奇数时,该点不可见;

  3. 当相交次数大于0,且为偶数时,该点部分可见。与之相关的立体面,可能被平面图的边遮挡住。

  4. 注意:如果计算时,相交点为平面图的顶点,该点视为相交两次。

2.2.2计算偏移量

现实世界是三维立体的,按一定规则建立平面坐标系,将一定高度的建筑物投影到该平面坐标系统,根据相关公式即可计算建筑物高度在平面上的阴影长度,进而获得建筑物的偏移量。

在某一太阳时太阳高度角和方位角公式按照(1)和(2)进行计算。

612da1c9a55c9_html_38a4b9df0537d356.gif (1)

612da1c9a55c9_html_e4d37d285805934f.gif (2)

612da1c9a55c9_html_9860805f701cd610.gif

图3 某一高度建筑物在水平面上阴影分量

公式中φ为所在地的纬度,δ为赤纬角,ω为太阳时角。通过三角关系即可求出某一高度遮挡物在水平面上的阴影长度L。以南北向为Y轴,东西向为X轴,建立坐标系可得到L的Y分量,那么Ly分量的大小可表示为:

612da1c9a55c9_html_2a7f617adb266ea7.gif (3)

根据2.1.1分析结果,建筑物是向上即Y方向偏移,而建筑物在X方向偏移量为0,因此根据公式(3)即可得出建筑物偏移量。

2.2.3建筑物立体面构建

612da1c9a55c9_html_8cffe8a7db711d7c.gif612da1c9a55c9_html_7dc7595208bca374.gif

图4建筑物立体面简图

建筑物是由一组坐标点组成,如图4 所示,1-8这8个点组成的建筑物图形,(2,2’,3,3)、(3,3’,4,4’)、(6,6’,7,7’)、(7,7’,8)这四个面为需要构建的立体面。构建方法如下:

1.找到所有可见点,图中4的可见点有2、3、4、6、7、8;

2.为所有相邻的可见点,构建立体面,2-3、3-4的立体面构建简单易实现;

3.6-7和7-8的立体面“大”了,这个面会被1-8遮盖住一部分;

4.对立体面排序,Y值越小的放在前面,输出至立体面结果中;

5.绘制立体面时,按照Y值由大到小顺序绘制,即可解决的立体面6-7和7-8“大”的问题;

按照上述方法构建好建筑物立体面后,将结果输出为面要素的shp文件。

2.2.4建筑物顶面构建

计算出建筑物物偏移量后,原建筑物图形向上即Y方向偏移该偏移量即可构成建筑物顶面。具体实现:从mif文件获取根据每一建筑物点序,根据偏移量即可计算得到偏移后建筑物点序,偏移后点序即组成建筑物顶面,将建筑物顶面输出为面要素的shp文件。

3.结果对比分析

612da1c9a55c9_html_508f671381a28a7a.png612da1c9a55c9_html_428e9ef923f21d66.png

图5建筑物制图表达及本文2.5维立体面对比

通过上述方法构建的建筑物顶面和立体面,使用ArcGIS软件对建筑物顶面和立体面进行式样配置,与道路、绿地、水系、POI等地图数据结合,制作成栅格切片,发布成栅格地图服务,实现2.5维建筑物地图立体展现,提高了地图显示效果,增强客户体验好感度。

该方案实现之前,建筑物显示采用ArcGIS提供的制图表达,按照阴影渲染的方式进行立体显示,效果见图5左,该方式渲染的缺点是所有建筑物高度一样,且立体效果不明显。

本论文介绍的解决方案,建筑物显示效果(图5右)与ArcGIS提供的制图表达方法生产出的效果相比更具立体感,与其他矢量地图结合起来进行切片发布,可以在不影响浏览速度的情况下,更好地展示建筑物信息,是一种简洁、清晰的地图展示方法。

4.结束语

本文总结前人经验的基础上,探讨了互联网地图2.5维建筑物构建方法,利用建筑物地理坐标和高度,分析计算建筑物组成点的可见性;根据一定视角下一定高度的建筑物在地面阴影长度,获取建筑物顶面偏移量;构建建筑物顶面,构建可见点立体面,剔除被遮挡的立体面,实现将建筑物平面图形的mif数据生成建筑物顶面和立体面shp数据,结果数据组合显示可达到2.5维立体效果。通过使用本方法生成的2.5维建筑物数据,不仅数据量小,且在ArcGIS中展示的2.5维建筑物具有类似三维的立体效果,证明本文方法的可靠性和有效性。


参考文献:1陈迅.2.5维电子地图的制作与发布[D].西安科技大学,2012

2 宋珉,刘鹏超,赵维,等.2.5维地图制作算法研究与实现[J].城市勘测,2010(5):104-106

3 张琳娜,梁伟,李君轶.基于2.5维GIS机场旅客导航系统的研究[J].西北大学学报,2011,40(5):917-921

4 苏梓璇,高瑛,兰明. ArgGIS环境下2.5维构筑物的地图展示方法的实现[J].测绘技术装备,2015, (3):32-33

作者简介:李晓静,女,185年1月出生,2012年7月毕业于北京师范大学,硕士学位,现就职于中国移动通信集团辽宁有限公司,职员,主要成果为主持全国栅格地图制作发布、栅格地图系统、URI系统等。通信地址:辽宁省沈阳市浑南新区新隆街6号,邮编:110179,联系邮箱:lixiaojings@ln.chinamobile.com,联系电话:18802486660。