Web端也能实现基于位置GPS的增强现实?

Web端也能实现基于位置GPS的增强现实?

最近AR导航(AR+GPS)实火,不仅国内地图公司纷纷布局AR导航市场,高德地图在Android和iOS端正式上线AR导航功能(高德地图AR导航iPhone版也上线啦!),腾讯地图和滴滴也分享一些关于AR导航的关键技术(滴滴AR实景导航背后的技术);国外Google最近又更新完善了AR导航的功能,交互更加友好,导航更加直观高效。目前的AR导航多直接运行在原生端(iOS或Android),那么在Web端可以实现AR导航嘛?当然可以,有已经封装好的框架供我们开发使用:GeoAR.js是基于Web端端一个免费的轻量级库,可使用你的手机GPS传感器在Web端实现AR导航功能。

Web端也能实现基于位置GPS的增强现实?

关于WebAR

WebAR使用WebRTC,WebGL和现代传感器API的组合技术,通过Web浏览器提供对基于Web的增强现实的访问与实现。2009年FLARToolKit的诞生标志着AR技术进入了Web时代。FLARToolKit是使用最广泛的基于Flash的AR库,得到了大型开发人员社区和许多带有示例应用程序的网站的支持。FLARToolKit是ARToolKit的Flash Actionscript(v3)版本,可用于快速开发基于Web的AR体验。FLARToolKit从输入图像中识别出视觉标记,然后计算摄像机在3D世界中的方向和位置,并将虚拟图形覆盖在实时视频图像上。FLARToolKit支持所有主要的Flash 3D图形引擎(Papervision3D,Away3D,Sandy,Alternativa3D)。但随着Flash的没落,FLARToolKit框架也慢慢淡出历史舞台。如今WebAR越来越主流,市面上也有许多优质的高效的第三方框架可供开发者使用,好的框架或工具往往会事半功倍,下面是作者总结的比较成熟的一些框架:

Web端也能实现基于位置GPS的增强现实?

AR.js是一个轻量级的增强现实类JavaScript库,支持基于标记和位置的增强现实。开发人员可以使用几行HTML将AR特性和功能引入任何网站。该项目是开源的,在GitHub上拥有近14,000个stars,各种平台的开发人员正在使用它来创建更多新的数字体验。AR.js框架包括跨浏览器兼容性,并且支持WebGL和WebRTC,这意味着它可以在iOS 11以上的Android和iPhone设备上正常工作。通过包装许多不同的AR框架,包括three.js,a-frame和ARToolKit,AR.js使得将AR引入Web应用程序变得更加简单高效。它具有以下优点:

  • 跨浏览器兼容性

  • 即使在较旧的设备上也可以达到60fps的高性能

  • 基于Web,无需安装

  • 开源,可免费访问

  • 使用WebGL和WebRTC在所有移动设备上均可使用

  • 无需额外或不常见的硬件

  • 可以用不到10行HTML来完成

Web端也能实现基于位置GPS的增强现实?

Google Maps Live View:最近,Google在Google Maps应用程序上发布了其基于位置的AR体验。手机会从GPS数据中识别其在世界上的位置,并在手机上显示AR内容以突出显示地点,方向等。

Web端也能实现基于位置GPS的增强现实?

Web端也能实现基于位置GPS的增强现实?

想象一下,现在实现相同的AR效果,但是它是通过Web实现的的,只要打开浏览器,每部手机都可以访问。无需在手机上安装任何应用。现在有个框架就可以帮你实现Web上基于位置的AR:GeoAR.js。

简单的GeoAR.js演示

需要在装有GPS传感器的手机上打开url,在打开它之前先启动GPS传感器。当你在户外时,试着打开它,这样你会有一个更稳定的体验。你会看到你周围的一些地方,用一个地方图标表示。如果你点击它们,它会显示你的地名。演示地址:

https://nicolo-carpignoli.herokuapp.com/examples/basic.html

https://nicolo-carpignoli.herokuapp.com/examples/places-name/

Web端也能实现基于位置GPS的增强现实?

GeoAR.js基本上具有两个功能:

(1)根据相机的方位/位置,根据现实世界中的位置在手机上显示AR内容

(2)与AR内容和Web UX元素进行交互。

目前(2019年9月)可用的称为“点击位置”的是作者刚刚发布的演示URL。在那方面,作者已经使用Foursquare API从用户GPS位置开始,将特定数量的地点动态添加到应用中。作者还使用从HTML导入的Javascript为每个图标添加了位置图标和单击行为。

GeoAR.js完成了其余工作:启动后,询问是否启用了GPS数据权限(还处理有关iOS 12运动传感器的问题),并在相机上显示了位置图标。借助GeoAR.js重新计算数据并显示内容在真实世界中的位置,移动相机并在周围走动将改变用户在真实世界中的位置和方向。为此,它使用一种算法来计算距用户位置的对象距离。

GeoAR.js项目地址:

https://github.com/nicolocarpignoli/GeoAR.js

AIRX三次方致力于产出优质新技术教育内容,打造开发者学习服务闭环,专注ARVR、Unity、Unreal、CV和AI新技术职业教育,生产优质的课程内容,打造开发者学习与服务闭环模式,从学习到 offer到进阶学习一站式服务。希望广大有经验的ARVR、游戏开发讲师与AIRX联系,共同制定研发优质课程内容,促进ARVR内容生态的发展。

Web端也能实现基于位置GPS的增强现实?