Appearance
第七章 模型图层操作
目录
第一节 模型地标图操作
模型地标图就是在摄像机视野距离不同的情况下,可以展示成模型或者是地标图的样式。使用图例属性可以设置多个模型类型,并且支持批量操作。
接下来我们先看一下 API 调试器中预置的模型地标图代码范例。
首先是添加模型地标图,并聚焦到该图层,然后每隔 5 秒更新模型地标图数据。场景中添加了一个“小汽车”的地标点,视角拉近,地标点变成了模型,并在 5 秒后更新了模型的位置数据;将视角拉远,模型又变回了地标点,这就是模型地标图根据视野距离切换地标点或模型的效果。
我们使用addModelLandmarkLayer 方法来添加地标图,在上方的参数中,与 id 相关的这里我们就不做过多介绍了,modelMaxDistance 是模型最大显示距离,超过这个距离将不再显示模型,而显示图标。iconMaxDistance 是图标最大显示距离,超过这个距离将不再显示图标。legends 用于定义模型类型、图标名称等样式属性,通过 legends 和 data 方法可以定义多个模型地标图层。data 是实际添加图层数据属性,可以通过数组传入模型地标图每个对象的显示文字、图例类别、中心点位置、旋转角度。
我们使用 addModelLandmarkLayer 方法给演示一下模型地标图添加,先清除后面的代码,点击执行。可以看到,场景中添加了一个模型地标图,并且可以根据我们刚刚设定的最大视野距离动态切换显示模型或图标。
更新模型地标图使用的是:updateModelLandmarkLayerCoord 方法。
上方的参数中,我们可以重新定义地标图的数据,如 id、XYZ 轴坐标、旋转角度等,这里我们将 label 改为“大汽车 1”,并对 coord 进行修改,同时设定添加地标图后 5 秒执行数据更新。点击执行,可以看到场景中先添加一个地标图,5 秒后,地标图显示文字和位置数据都发生了变化。
以上就是添加模型地标图和更新模型地标图的方法。
第二节 模型轨迹图操作
模型轨迹图和轨迹图的区别在于,模型轨迹图能够根据距离的远近,来显示成一个模型或者是一个地标点,并且比模型地标图多了平滑移动、尾迹显示、按时长消批的功能。使用 addModelTailLayer 方法可以添加模型轨迹图,使用 uppdateModelTrailLayerCoord 这个方法可以更新模型轨迹图。
我们来看一下添加模型轨迹图的数据参数:
- snapSurface 是指是否启用自动贴地,“0”为不贴地,“1”为贴地。
- duration:当前点到下一点的过渡动画时长,如果您每 1 秒更新模型轨迹图的位置,这个时间设置成 1.1 会比较平滑一些。
- modelMaxDistance:模型可见的最大距离。
- iconMaxDistance:图标的最大可见距离,这两个属性的含义和模型地标图一样。trackStyle:轨迹的效果。
- objLife:轨迹的消批时间,消批的意思是,如果再这个时间长度内,没有更新过这一个图层子对象,那么这个图层子对象将会自动删除并消失。
- trackWidth:轨迹的宽度。
- legends:来定义模型轨迹图的样式,包括 modelType 模型的类型、iconName 图标的类型。
- Data:模型轨迹图的数据,在这里我们定义了三个点位,id 分别是“1”、“2”、“3”,用 type 去指定样式、label 是文字、coord 是坐标、coordZ 是高度、rotation 是 XYZ 三个轴的旋转值。
- clearOverlayType:清除模型轨迹图。
当用 addModelTrailLayer 方法,就可以添加模型轨迹图,可以看到 addModelTrailLayer 方法中有一个 uppdateLayer 方法,是更新模型轨迹图,更新轨迹图同样是定义新的点位数据,最后通过计时器来实现一定间隔时间后更新图层。
接下来调整摄像机的视角,可以看到,当距离拉远时,汽车模型变成了图标,再次点击执行,在当前视角下可以看到移动的图标,当视野拉近,图标又变回模型, “小汽车”的图标,现在执行可以看到“小汽车”图标在进行移动,将摄像机角度拉进可以看到模型在移动。
这就是模型轨迹图根据视角角距离的远近,自动变换模型或者地标图来展示的操作方法。