APP下载

基于Google Maps全景图的出租车道路模拟驾驶系统

2012-10-19

大众科技 2012年5期
关键词:全景图漫游全景

金 龙

(湖南科技大学,湖南 湘潭 411201)

基于Google Maps全景图的出租车道路模拟驾驶系统

金 龙

(湖南科技大学,湖南 湘潭 411201)

在出租车行业中,“绕路”占据民事纠纷或投诉的最大比例,造成这种情况的原因除了驾驶员职业道德因素外,很大一部分原因在于驾驶员对道路的熟悉程度不够。从基于图像的虚拟现实技术特点入手,分析了将全景虚拟展示方法用于出租车驾驶员熟悉道路培训的可行性和有效性,最后介绍了Google Maps全景图与模拟驾驶设备相结合的培训系统的具体实现。

google maps;street view;全景图;模拟驾驶

出租车从业人员素质培训中,很少有将道路熟悉培训列入培训内容的,驾驶员只能从现实中积累经验,然而这种方法周期长、成本高,还经常因走错路线被乘客投诉。详细论述了全景虚拟展示在模拟道路环境的实现原理,并运用地理信息系统(GIS)结合出租车行业需求,为司机提供快速查询街道详情、模拟行车引导,建立一套模拟培训系统。

1 背景知识

1.1 虚拟现实和全景虚拟展示

虚拟现实 VR(Virtual Reality)是以沉浸性、交互性和构想性为基本特征的计算机高级人机界面,通过计算机技术模拟出一个逼真的视觉、听觉、触觉一体化的三维虚拟环境,使参与者获得与现实世界一样的空间体验。随着数字图像处理设备及数字图像技术的发展,基于图像的虚拟现实技术的应用越来越广泛[1]。

全景虚拟展示,是基于图像的虚拟现实技术,使用专用相机在离散的观测点捕捉360°空间范围场景的全部图像信息,再由图像处理软件进行拼接,组织为虚拟全景空间,用户可以在该空间内以观测点为中心环视,从而虚拟出一个现实环境中的场景[2]。全景虚拟展示具有照片质量的真实感,适合风景旅游、城市街道、室内环境的展示等。全景虚拟展示技术主要有以下优点:

1)数据易于采集。仅需要在适当点采集图像信息,数据量小,不会消耗过多的时间和计算机资源,有利于实现对连续场景的漫游。

2)成本低廉。不需要专用虚拟现实硬件设备,如三维头盔、数据手套、数据衣等,仅需要一台普通电脑就足够了。

3)逼真度高。由于图像信息是实际场景的照片,因此,基于图像的虚拟现实场景会有照片质量的真实感。

4)无需几何建模。建立几何模型是一个既费时又费力的工作,基于图像的虚拟现实场景是由照片拼接而成的封闭空间,不需要复杂的几何建模。

5)便于网络传输。与其它建模方式相比,全景图数据的体积更小,适于网络应用[8]。

1.2 地理信息系统

地理信息系统GIS(Geographic Information System)是一门集计算机科学、信息学、地理学等多门科学为一体的新兴学科,它是在计算机软件和硬件支持下,运用系统工程和信息科学的理论,科学管理和综合分析具有空间内涵的地理数据,以提供对规划、管理、决策和研究所需信息的空间信息系统。

当今GIS已经不再被看作为一个技术系统或是计算机系统,而已被看作是一门学科,一门技术。是地图学,摄影测量与遥感,地理学,计算机科学与技术等多门学科综合发展的产物,是一种重要的空间数据处理、集成和应用工具。

基于Google Maps全景图的出租车道路模拟驾驶系统是Web和GIS相结合,即利用Web技术来扩展和完善地理信息系统的一项新技术。

1.3 Google Maps全景图

Google公司于 2005年推出了在线地图软件 Google Maps,并公布了Google Maps API,API由JavaScript实现。Google Maps包含了大量的、多层次的影像。它为我们提供了一个开放的平台。

基于Google Maps全景图的出租车道路模拟驾驶系统使用了Google Maps全景图,它是Google Maps的一项特色服务,能够通过输入坐标或地名观赏当地街景全景图。

2 全景虚拟展示在驾驶培训中的应用

全景虚拟展示在驾驶培训中的应用主要是对道路,建筑等进行展示,给驾驶员一种身临其境的体验,使用者可以通过操作方向盘等驾驶设备360°的观看周围场景。

与实地熟悉道路相比该系统有很多优点。首先,该系统有较大的灵活性和多样性,能方便的在各个地点间进行训练,还能够实现街道名,地名,建筑物的查询;其次,由于采用了地理信息系统技术,该系统能够对任意两点间的最短路径进行分析并进行模拟对比驾驶,显而易见的纠正驾驶员的错误;最后,使用该系统还能够有效的提高安全性,提高培训效率,有效的减少资源消耗,大大降低运营成本,为创建节约型社会提供了一条新思路[4]。

3 系统设计与实现

由于 Java语言所特有的平台无关性,网络分布性等特性,使得它成为该系统开发的主要语言,此外,系统还使用了Google Maps API和JavaScript脚本语言,系统的运行仅需要tomcat支持和通畅的网络环境。根据功能和开发方式不同,系统按如下方案进行设计。

3.1 系统结构模块和功能设计

图1

虚拟驾驶培训系统提供了三大功能:自驾车漫游,查询街道详情,模拟行车引导。

系统将整个业务分为表示层、逻辑层、数据层三层结构。其中表示层位于最外层,是展现给用户的界面,负责处理用户请求并返回处理结果;逻辑层在体系结构中处于数据层与表示层中间,起到了数据交换中承上启下的作用,负责响应用户请求,并通过Ajax技术与数据层进行交互,处理来自模拟驾驶设备的数据;数据层负责与模拟驾驶设备进行通信,获取驾驶设备的操作参数。系统结构如图1所示。

系统从Google数据库获取Google Maps全景图数据,并通过JNI技术从信息采集卡获取模拟驾驶设备操作数据。用户通过操作模拟驾驶设备与Google Maps全景图进行交互。

图2 模拟驾驶设备

另外,由于开发方式不同,系统又将Google Maps服务器、表示层和部分逻辑层的归为图形部分;模拟驾驶设备、数据层和部分逻辑层归为驾驶部分。模拟驾驶设备采用的是上海硕博科教设备有限公司生产的SB-2009型汽车驾驶模拟器,如图2所示。

3.2 关键技术

1)JNI技术

JNI是Java Native Interface的缩写,它允许Java代码和其他语言的代码进行交互。JNI是为了本地已编译语言,尤其是C和C++而设计的,当已经有了一个用其他语言写成的库或程序,而你希望在Java程序中使用它时,JNI可以实现这一目标。JNI还可以使用一些旧的库,与硬件、操作系统进行交互,或者提高程序的性能。JNI标准能够保证本地代码能工作在任何Java虚拟机下。

该系统使用了模拟驾驶设备,该设备的操作信息采集卡接口是用C++语言编写的,因此需要使用JNI技术。使用JNI技术与本地C++代码交互,会丧失平台的可移植性,但虚拟驾驶培训本身为专有系统,可接受一定的可移植性损失。

2)prototype.js

prototype.js是Sam Stephenson写的一个非常优雅的,兼容标准的JavaScript基础类库,对JavaScript做了大量的扩展,而且很好的支持Ajax,能帮助使用者轻松建立有高度互动的Web 2.0特性的客户端页面。

这个程序包里面包含了许多预定义的对象和通用性方法,使用这些方法能够减少大量的重复编码和惯用法。系统中使用prototype类库不但减少了代码量而且对于Ajax的支持使得系统能够异步的请求模拟驾驶设备的操作数据,使得用户体验更加流畅。

3.3 系统实现

3.3.1 表示层

该系统使用了Google Maps全景图数据。Google Maps为开发者提供了用于二次开发的API,其接口函数由JavaScript实现,通过API可以操作全景图进行浏览、漫游,并通过设置定时器以车辆行驶速度为参数定时的加载地图。其实现流程如下:

图3 全景图显示流程

3.3.2 逻辑层

系统逻辑层主要负责响应用户请求和处理从数据层获取的数据,更新车辆行驶参数,以控制全景图的方向,刷新速度等。系统使用了prototype.js类库和Ajax技术以异步的方式发送请求并从数据层获取数据。

其中,a表示方向盘转动参数,a'表示行驶方向角度变化;v表示油门大小参数,v'表示v对应的行驶速度。

倒车和加速操作将通过全景图的显示方向和刷新速度来控制,此外,系统会记录当前位置的前后两景图像,以便能够较迅速和流畅的响应前进和倒车操作。

3.3.3 数据层

数据层负责与模拟驾驶设备交互,从信息采集卡中读取数据,信息采集卡中的程序由C++编写,因此需要通过JNI进行实现。其实现步骤是:

1)将C++编写的文件生成动态连接库

2)将DLL文件放置到系统path变量所指定的任何目录中

3)将C++程序中的方法在Java类中进行一个本地化声明

4)通过Java的程序加载DLL动态链接,这样执行到本地方法时,虚拟机会从已加载的DLL中寻找到被Java调用的本地方法。

3.4 功能模块演示

系统主要提供了3个功能:查询街道详情,自驾车漫游,模拟行车引导。如图4所示。

查询街道详情:是由用户输入所要查询的地点或街道名称后,系统自动搜索最匹配的位置,并显示该地点的全景图,进而查看该地点环境或从该点开始漫游。若该地点没有全景图数据,系统将显示距离该点距离最近的全景图数据。

自驾车漫游:在进入某地点全景图以后,操作模拟驾驶设备,全景图的视野也会随之变化,用户可以自由的在城市街道中穿行。在交叉路口处,系统将根据距离路口最近的采样点时方向盘角度来决定转弯方向。系统设置静止不动,也就是油门没有踏下的时候,操作方向盘不能够改变视角。此外,将档位放至R挡,全景图视野将会掉转180°行驶。

模拟行车引导:用户输入起始点和目的地后,系统首先显示起始点的全景图,同时生成一条最短路径显示在地图上,用户从起始点开始行驶,系统会记录经过的路线,与系统生成的路径进行对比显示,用户将对自己所犯的错误一目了然。如果用户对当地路况不熟,点击“自动驾驶”按钮,系统将会自动引导车辆沿最短路径行驶至目的地,用户不需要再操作模拟驾驶设备。

图4 系统效果图

4 结束语

本系统将模拟驾驶设备和Google Maps全景图结合起来,为驾驶员培训或需要熟悉道路的人员提供了一个安全、方便、高效的平台。通过该系统,用户能够身临其境的在城市中漫游,直观明了的纠正驾驶路线。

在此基础上,系统还拟将多视点全景图与平滑漫游技术引入进来,进一步提升系统的真实感和沉浸感[5]。

[1] 刘思凤,贾金原.基于 Web的虚拟旅游环境的开发及其关键技术[J].计算机应用研究,2008,25(9).

[2] 全政环.360°全景技术的应用和发展历程[J].电脑知识与技术,2010,6(3):713-715.

[3] 刘思凤,贾金原.基于 FLASH 的湛江虚拟旅游全景漫游与导航系统[J].广东海洋大学学报,2009,29(3).

[4] 董志贵,王金武,秦佳,刘建生.基于 GIS和虚拟现实技术的驾驶训练、绩效测评系统开发[J].东北农业大学学报,2008,39(1):124-128.

[5] 李怡静,张剑清.多视点全景图与平滑漫游的研究与实现[J].计算机工程:图形图像处理,2009,35(12).

[6] Google. Google Maps API[EB/OL].http://code.google.com/intl/zh-CN/apis/maps/documentation/re ference.html.

[7] 罗立宏,陈志.Google Earth在旅游景点展示中的应用[J].计算机工程:开发研究与设计技术,2009,35(3).

[8] 张建立.基于X3D和Panorama的虚拟校园建设[J].高等职业教育—天津职业大学学报:2009,18(6).

[9] 鄢志武,马祥山,吴丽.旅游景区三维全景虚拟展示研究—以云南石林世界地质公园为例[J].理论与实践:理论月刊,2009,(4).

Design and Implementation of a Taxi Road Training System Based on Google Maps Panorama

In the taxi industry, the "detour" occupies the largest share of disputes or complaints. This situation may not only result from the fact that the driver’s ethical factor, but also for the driver is not sufficiently familiar with the road. Start with image-based virtual reality technology to the features of virtual panoramic display methods, discusses the realistic feasibility of the use for training taxi drivers to familiar with the road. And finally introduces the panorama of Google Maps and driving simulator training equipment combined system.

google maps;street view;panorama;simulated driving

TP311

A

1008-1151(2012)05-0028-03

2012-03-21

金龙(1983-),男,黑龙江大庆人,湖南科技大学硕士研究生,研究方向为WebGIS与移动计算。

猜你喜欢

全景图漫游全景
戴上耳机,享受全景声 JVC EXOFIELD XP-EXT1
嫦娥四号月背之旅全景图
全景敞视主义与侦探小说中的“看”
霹雳漫游堂
从5.1到全景声就这么简单 FOCAL SIB EVO DOLBY ATMOS
全景搜索
NASA漫游记
环保概念股全景图
奇妙岛全景图
奇妙岛全景图