前言
各位小伙伴们,大家好,今天蘑菇头带来的是世界湖区功能的一个分享,主要利用的是图片贴花的技术,将我们的图片与三维场景进行一个贴合的效果,可以较为宏观的对我们的场景进行一个分析,快来一起看看吧。

思路
首先可以看到,同样需要将我们的样式进行调整,所以直接复用我们上一段代码。
dart
await fdapi.camera.set(525323.14875, 3435349.377813, 273227.06, -85.987404, -95.227394, 2)
await fdapi.weather.setDarkMode(true)
await fdapi.infoTree.hide(digitalTwinStore.digitalTwin['苏州地形影像_Water'])
通过api文档可以发现,图片贴花比较简单,只需要调用Decal类的add方法,通过调节位置,缩放,旋转参数就能达到我们想要的效果。

但是,可以通过代码调节起来会很麻烦,所以我们直接写了一个组件来帮助大家调节。贴花组件_免费高速下载|百度网盘-分享无限制
需要将lib下的两个配置文件(ac.min/ac.conf)进行替换为cloud里面sdk下的配置文件,打开是这个样子。

首先,我们先点击获取位置,然后在合适的位置点击鼠标左键即可看见坐标上去了,然后填写贴花路径,这个路径是我们cloud资源路径对应下的贴花路径,直接点击复制粘贴过去即可,然后就可以看见贴花上去了。

但是可能会被拉升导致变形,没关系,我们可以通过调节位置,缩放等操作就可以调整到我们想要的位置,然后点击获取贴花参数,复制到我们的代码中即可快速完成调节。

所以我们完整的代码是这样。
dart
import { useDigitalTwinStore } from '@/stores/digitalTwin'
const digitalTwinStore = useDigitalTwinStore()
export const initLake = async () => {
await fdapi.camera.set(525323.14875, 3435349.377813, 273227.06, -85.987404, -95.227394, 2)
await fdapi.weather.setDarkMode(true)
await fdapi.infoTree.hide(digitalTwinStore.digitalTwin['苏州地形影像_Water'])
const decal = {
id: 'lake',
groupId: '',
userData: '',
texturePath: '@path:世界湖区.png',
order: 1,
decalBlendMode: 0,
location: [524000, 3462000, 127],
rotation: [-90, 0, 0],
scale: [270000, 270000, 270000]
}
await fdapi.decal.add(decal)
}
export const exitLake = async () => {
await fdapi.weather.setDarkMode(false)
await fdapi.infoTree.show(digitalTwinStore.digitalTwin['苏州地形影像_Water'])
await fdapi.decal.delete('lake')
}
涉及的飞渡api
-
添加贴花-fdapi.decal.add('lake')
-
删除贴花-fdapi.decal.delete('lake')