稀土掘金技术社区 01月30日
基于 Vue +three.js +Photo Sphere Viewer + 高德地图实现 VR 效果
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍通过结合VR看房和实时场景展示提升用户体验的项目,包括需求分析、技术方案及实施步骤等内容。

🎈用户可通过VR技术查看房屋内外环境,获得沉浸式体验

🗺️利用高德地图展示特定区域房屋信息,支持自定义标记点

💻采用Vue.js等技术实现项目,包括集成Photo Sphere Viewer等

📈从后端获取数据,在地图上批量生成标记点并实现VR场景切换

原创 VueVirtuoso 2025-01-28 09:01 重庆

点击关注公众号,“技术干货”及时达!

点击关注公众号,“技术干货” 及时达!

需求背景

随着科技的进步,虚拟现实(VR)技术在家居行业的应用越来越普遍。我们项目的目标是通过结合 VR 看房和实时场景展示,提升用户的体验,用户可以在家中便能身临其境地感受房屋的空间布局和氛围。此外,我们希望通过高德地图提供的标记点功能,帮助用户快速定位感兴趣的区域。

业务这边想要实现右边链接的效果阿里云付费全景图,类似VR看房,支持360° x 360°任意旋转,支持自定义添加标注,支持切换场景等功能,效果如下

需求分析

    「VR 看房」

「实时场景展示」

「自定义标记点」

「海量标记点创建(MassMarks)」

技术方案

「技术栈」

实施步骤

    「项目初始化」:创建新的 Vue 项目,并安装依赖:

    vue create vr-house-view
    cd vr-house-view
    npm install photo-sphere-viewer vue-amap

    「集成 Photo Sphere Viewer」:在 Vue 组件中使用 Photo Sphere Viewer 显示 360 度全景图。

    <template>
    <div id="photo-sphere-viewer"></div>
    </template>
    <script>
    import PhotoSphereViewer from 'photo-sphere-viewer';
    export default {
    mounted() {
    const viewer = new PhotoSphereViewer({
    container: document.getElementById('photo-sphere-viewer'),
    panorama: 'path/to/your/panorama.jpg', // 替换为你的全景图路径
    });
    },
    };
    </script>
    <style>
    #photo-sphere-viewer {
    width: 100%;
    height: 400px;
    }
    </style>

    「高德地图集成」:创建地图组件,并配置高德地图 API。

    <template>
    <div id="map" style="width: 100%; height: 400px;"></div>
    </template>
    <script>
    export default {
    mounted() {
    const map = new AMap.Map('map', {
    center: [116.397428, 39.90923],
    zoom: 13,
    });
    },
    };
    </script>

    「添加标记点功能」:创建自定义标记点,并展示房屋信息。

    // 在地图组件中添加标记点
    addMarker(lng, lat, title) {
      const marker = new AMap.Marker({
        positionnew AMap.LngLat(lng, lat),
        title: title,
      });
      marker.setMap(this.map);
      marker.on('click', () => {
        this.showInfoWindow(lng, lat, title);
      });
    }
    showInfoWindow(lng, lat, title) {
      const infoWindow = new AMap.InfoWindow({
        content`<div>${title}</div>`,
        positionnew AMap.LngLat(lng, lat),
      });
      infoWindow.open(this.map, new AMap.LngLat(lng, lat));
    }

    「实现海量标记点」:从后端获取房屋数据,并在地图上批量生成标记点。

    async fetchProperties() {
      const response = await fetch('/api/properties'); // 替换为你的 API
      const properties = await response.json();
      properties.forEach(prop => {
        this.addMarker(prop.longitude, prop.latitude, prop.title);
      });
    }

    「结合 VR 效果」:在用户点击特定标记点时,切换至对应的 VR 场景。

    marker.on('click', () => {
      this.viewer.setPanorama(`path/to/vr/${prop.id}.jpg`); // 替换为相应的 VR 场景路径
    });

全景图实现使用了 photo-sphere-viewer 插件,它基于three.js和uEvent 2实现

这边实现主要用了 photo-sphere-viewer和他的标记Markers插件

思考与总结

在实现这个项目的过程中,我们关注用户体验的提升。VR 技术让用户更直观地感受到房屋的空间布局,而高德地图的集成则提供了便捷的房屋定位方式。这种结合不仅提升了产品的附加值,也让用户在选择家居产品时感受到更强的参与感。

随着技术的不断发展,我们相信 VR 看房和实时场景展示将成为家居行业的新趋势。

点击关注公众号,“技术干货” 及时达!

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

VR看房 实时场景展示 高德地图 技术方案
相关文章