Skip to content

第六章 模型操作 ​

目录 ​

第一节 模型操作 ​

我们在 API 调试器里,点开添加模型,可以看到有添加模型、删除模型、控制模型转换这三个接口。

1. 添加模型 ​

首先我们来介绍一下如何添加模型,通过调用”addModel”方法添加模型,这里我们需要”modelType”(模型的名称),可以通过”获取自定义模型和图标”的方法,点击执行后,在下方回调信息中找到”customModels”,我们这里选用 ID“18639”的模型,这个模型是场景中遮阳伞贩卖机模型。

回到添加模型接口中,我们来添加模型。在右上方代码面板中,我们先把不需要的代码删掉,来看一下添加模型的参数信息。

方法中有模型的 id、轴坐标、经纬度、高度,

  • rotation——为三轴旋转角度,
  • alpha——透明度,
  • scale——缩放倍数,
  • titleText——特效标签文字,
  • titleColor——文本颜色,下面是文本颜色,
  • visible——当前模型显隐状态,
  • modelType——添加的模型,

点击执行该方法后,就可以看到模型出现在场景中了。

2. 模型转换 ​

转换的模型 id 是 customModel01,控制模型基础变换使用的是“setModelTransform2”方法,在此方法里,我们可以修改模型的经纬高、旋转角度、缩放倍数、持续时间等,druation 是模型转换完成所需要的时间,是指从改变前位置到改变后位置所用的时间。 在当前的代码中,我们更改了模型的位置、缩放倍数,点击执行,可以看到模型发生了位移,且随着位移过程进行了放大。这就是修改模型属性进行模型转换的方法。

3. 删除模型 ​

删除模型使用的是“removeModel”方法,该方法我们只需要传入模型“id”即可删除对应的模型,我们点击执行,可以看到场景中的模型就被删除了。

以上就是模型操作的方法。

返回本章目录

第二节 获取建筑 ​

获取建筑使用的是“getBuildings”方法,可以获取到场景内的建筑信息,点击执行,可以在“事件日志”中看见有一个名字为“buildings”的数组,包含“id”“floors”“num”“rooms”几个参数,获取这些信息之后,可对模型进行剖分,展示更多的细节。

返回本章目录

第三节 拆分楼层 ​

首先来看一下 API 调试器中内置代码的效果,点击执行,可以看到场景聚焦到了单体建筑,并且展示出了建筑剖分后室内结构的状态,并在 3 秒后恢复楼宇的外观效果。再次执行,可以清晰地看到场景聚焦-拆分-高亮-恢复地全过程。

下面我们来分步为大家讲解一下: 首先介绍聚焦楼层的操作。使用“focusBuilding”方法,通过传入“buildingid”和“distance”镜头局建筑物的距离,点击执行,即可聚焦建筑。这里还可以看到建筑包含高亮的效果,高亮效果使用的是“highlightBuilding”方法,通过传入建筑的 id 和“type”(高亮风格),就可以实现了。

拆解楼层使用的是“showBuildingFloor”方法,要设置好建筑的“id”、“floor”拆解的楼层号、“animation”楼层拆解的动画,就可以完成楼层拆解的操作。

接着我们来恢复建筑,恢复拆解使用的是“resetBuildingFloor”方法,只需要传入 id,点击执行即可恢复建筑。

第四节 3DMarker ​

3Dmarker 类似于在场景上添加一个地标点,但是并不是图标,而是一个动态的模型特效。

我们先来看一下代码中的参数信息:

  • add3DMarker 方法:添加 3DMarker
  • update3DMarkerCoord 方法:更新数据
  • update3DMarkeStyle 方法:更新样式
  • removeOverlay:删除 3DMarker

下面我们,来看一下代码拆分的效果。

1. 添加 3DMarker ​

首先,我们先来添加 3DMarker,我们当前定义了代码数据,其中,

  • alpha——透明度
  • scale——缩放倍数
  • type——特效样式类型,可以修改不同的样式
  • titleText——特效标签文字
  • coord——经纬度
  • coordZ——高度
  • tag——自定义的数据
  • visible——当前图层的显隐状态

通过 add3DMarker 方法就可以进行添加,执行之后,我们可以看见,在场景里出现了一个旋转菱形地标,下方带有旋转光圈,这就是其中一种 3DMarker。我们将其删除,添加另外一种类型的 3DMarker,我们选择样式为“Revolve01”,执行之后,我们可以看到场景中出现了一个白色半透明且旋转的 3DMarker。这些就是添加 3DMarker 的操作。

2. 更新 3DMarker 位置 ​

使用 update3DMarkerCoord 方法,点击执行之后,我们可以看到场景中 3DMarker 的位置发生了变化,使用 update3DMarkerCoord 方法,修改经纬度信息、高度信息,就可以完成 3DMarker 的位置更新。

3. 更新 3DMarker 样式 ​

使用 uppdate3DMarkerStyle 方法可以更新 3DMarker 的样式,我们可以修改其 scale(缩放)大小、alpha(透明度)、还有 type(类别样式)、titleText(文字)也是可以修改的。当前代码我们已经定义了一套新的数据,点击执行,可以在场景里看到 3DMarker 的样式发生了变化,并且上方多了“更新特效”的文字。这就是 3DMarker 更新样式的方法。全部样式清单可以参考:(https://www.tuguan.net/doc/tgapi/v5/model/marker/operation.html)

4. 删除 3DMarker ​

删除操作使用的是 clearOverlayType 方法,我们只需要在 OverlayTyp 指令后传入要删除的模型类型,这里我们传入“3DMarker”,点击执行,可以看到场景中的 3DMarker 被删除掉了。

以上就是 3DMarke 操作的内容。

返回本章目录