Skip to content

模型轨迹图操作 ​

目录 ​

1. 添加模型轨迹图 ​

引入版本:3.3 起支持

功能描述 ​

在三维场景中添加模型轨迹图

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelTrailLayerId', // 图层对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
  name: 'layerName', // 图层名称,支持为图层自定义名称
  coordType: 0, // XY 轴坐标类别,0:X 经度,Y 纬度;1:X 米,Y米,相对世界00点
  coordTypeZ: 0, // Z 轴坐标类别,0:相对 3D 世界 0 海拔;1:相对 3D 世界地表;2:相对 3D 模型表面(单位:米)
  snapSurface: 0, // 启用自动贴地。0:不贴地;1:贴地
  duration: 1.5, // 从上一位置运动到新位置花费的时间(单位:秒),如果启用modelTrailData数据服务,同时表示同步数据的时间周期
  modelMaxDistance: 5000, // 模型最大可见距离(单位:米),不可见后显示icon
  iconMaxDistance: 100000, // icon最大可见距离(单位:米),不可见后隐藏
  isAutoRotation: false, // 是否自动根据当前位置和上一位置计算运动方向,如果为true的话,data中的rotation将不起作用。
  trackStyle: 'style001', // 尾迹内置风格,详见注释
  trackDuration: 20, // 尾迹粒子生命周期
  trackWidth: 50, // 尾迹粒子的宽度
  trackVisible: 'ShowAll', // 尾迹显示状态,"ShowAll":显示所有对象尾迹,"HideAll":隐藏所有对象尾迹,"对象Id":只显示当前图层特定对象Id的尾迹
  objLife: 60, // 批号消批时间长度
  modelTrailDataId: '', // 对应本服务器上modelTrail数据Id,如果找到id,则下方的data不起作用
  isReferenceType: false, // 模型是引用类型还是复制类型,引用类型的对象占用更少的显存和绘制调用次数,但是端渲染无法自定义修改材质和粒子效果,且不支持设置单个实例的透明度,流渲染不支持关节和动画。默认是复制类型。false: 复制类型,true: 引用类型。
  visible: true, // 添加当前图层时默认显示还是隐藏
  legends: [
    {
      name: 'legendName1', // 图层内图例名称,新建时调用者自己传入的唯一名称,用于各种操作的图例识别
      modelType: 'Car01', // 模型类型
      scale: 1, // 整体放缩倍数(单位:倍)
      iconName: 'bus', // 内置图标名称,详见下表:内置图标;或根据项目,在场景中预置好的图标对象的名称,包含文字样式定义
      trackColor: '#ff0000', // 尾迹颜色
      labelColor: '#ff0000', // 标签文本颜色,可选值,默认白色
      labelScale: 1, // 标签文本的缩放,默认值是1表示原大,0 - 1:表示缩小倍率,大于1:表示放大倍率
      labelOffset: [0, 0, 2], // 标签文本的位置偏移,默认值是[0, 0, 0],表示相对于模型中心点的x、y、z偏移位置(单位:米)
      labelBackgroundColor: '#333333', // 标签文本背景颜色,可选值,默认灰色
    },
    {
      name: 'legendName2',
      modelType: 'Car02',
      scale: 0.75,
      iconName: 'car',
      trackColor: '#ff0000', // 尾迹颜色
      labelColor: '#ff0000',
      labelScale: 1,
      labelOffset: [0, 0, 2],
      labelBackgroundColor: '#333333',
    },
  ],
  data: [
    // 定义图层可视化数据
    {
      id: '1', // 图层子对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
      label: '小汽车1', // 标签文本
      coord: [0.0036397165615085214, 0.0001274129970099125], // XY 轴坐标,X:经度;Y:纬度
      coordZ: 10, // Z 轴高度(单位:米)
      rotation: [0, 180, 0], // XYZ 三轴旋转度数 [偏航角(单位:角度,0正北, -360~360), 俯仰角(单位:角度,0水平, -360~360),翻滚角(单位:角度,0水平, -360~360)]
      type: 'legendName1', // 模型图例类别
    },
    {
      id: '2', // 图层子对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
      label: '卡车1', // 标签文本
      coord: [0.0026397165615037466, 0.0001274129970099125], // XY 轴坐标,X:经度;Y:纬度
      coordZ: 10, // Z 轴高度(单位:米)
      rotation: [0, 180, 0], // XYZ 三轴旋转度数 [偏航角(单位:角度,0正北, -360~360), 俯仰角(单位:角度,0水平, -360~360),翻滚角(单位:角度,0水平, -360~360)]
      type: 'legendName2', // 模型图例类别
    },
    {
      id: '3', // 图层子对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
      label: '小汽车2', // 标签文本
      coord: [0.0016397165614989717, 0.0001274129970099125], // XY 轴坐标,X:经度;Y:纬度
      coordZ: 10, // Z 轴高度(单位:米)
      rotation: [0, 180, 0], // XYZ 三轴旋转度数 [偏航角(单位:角度,0正北, -360~360), 俯仰角(单位:角度,0水平, -360~360),翻滚角(单位:角度,0水平, -360~360)]
      type: 'legendName1', // 模型图例类别
    },
  ],
};

appInstance.uniCall('addModelTrailLayer', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString图层对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识
nameString图层名称,支持为图层自定义名称
coordTypeNumberXY 轴坐标类别,0:X 经度,Y 纬度;1:X 米,Y 米,相对世界 00 点
coordTypeZNumberZ 轴坐标类别,0:相对 3D 世界 0 海拔;1:相对 3D 世界地表;2:相对 3D 模型表面(单位:米)
snapSurfaceString启用自动贴地。0:不贴地;1:贴地识
durationNumber从上一位置运动到新位置花费的时间(单位:秒),如果启用 modelTrailData 数据服务,同时表示同步数据的时间周期
modelMaxDistanceNumber模型最大可见距离(单位:米),不可见后显示 icon
iconMaxDistanceNumbericon 最大可见距离(单位:米),不可见后隐藏
isAutoRotationBoolean是否自动根据当前位置和上一位置计算运动方向,如果为 true 的话,data 中的 rotation 将不起作用
trackStyleString尾迹风格,端:style001,流:particle-粒子效果,vector-矢量线效果,none-无
trackDurationNumber尾迹粒子生命周期
trackWidthNumber尾迹粒子的宽度
trackVisibleString尾迹显示状态,"ShowAll":显示所有对象尾迹,"HideAll":隐藏所有对象尾迹,"对象 Id":只显示当前图层特定对象 Id 的尾迹
objLifeNumber批号消批时间长度
modelTrailDataIdString对应本服务器上 modelTrail 数据 Id,如果找到 id,则下方的 data 不起作用期
isReferenceTypeBoolean模型是引用类型还是复制类型,引用类型的对象占用更少的显存和绘制调用次数,但是端渲染无法自定义修改材质和粒子效果,且不支持设置单个实例的透明度,流渲染不支持关节和动画。默认是引用类型。false: 复制类型,true: 引用类型。
visibleBoolean添加当前图层时默认显示还是隐藏
legendsArray定义图层包含图例,支持为不同图例定义各自样式
legends[0].nameString图层内图例名称,新建时调用者自己传入的唯一名称,用于各种操作的图例识别
legends[0].modelTypeStringmodel(模型),building(建筑物),connection(关系线),iconModel(模型型号)
legends[0].scaleNumber整体放缩倍数(单位:倍)
legends[0].iconNameString内置图标名称,或根据项目,在场景中预置好的图标对象的名称,包含文字样式定义,具体图标名称参考下表和下图
legends[0].trackColorString尾迹颜色
legends[0].labelColorString标签文本颜色,可选值,默认白色
legends[0].labelScaleNumber标签文本的缩放,默认值是 1 表示原大,0 - 1:表示缩小倍率,大于 1:表示放大倍率
legends[0].labelOffsetArray标签文本的位置偏移,默认值是[0, 0, 0],表示相对于模型中心点的 x、y、z 偏移位置(单位:米)
legends[0].labelBackgroundColorString标签文本背景颜色,可选值,默认灰色
dataArray定义图层可视化数据
data[0].idString图层子对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
data[0].labelString标签文本
data[0].coordArrayXY 轴坐标,X:经度;Y:纬度
data[0].coordZNumberZ 轴高度(单位:米)
data[0].rotationArrayXYZ 三轴旋转度数 [偏航角(单位:角度,0 正北,-360-360), 俯仰角(单位:角度,0 水平, -360-360) ,翻滚角(单位:角度,0 水平, -360-360)]
data[0].typeString模型图例类别

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

具体内置图标名称(iconName)详情 ​

图标类型图标名称
市政设施camera
streetlamp
manholecover
sensor
utilitypole
transmission
broadcast
wifi
firehydrant
equipmentbox
trafficlight
charge
gasstation
wc
dustbin
地点建筑trainstation
airport
anchor
government
netpoint
metro
finance
school
hospital
factory
constructionsite
residence
mergencyshelter
park
diningroom
warehouse
store
tollgate
officebuilding
busstation
人员people
policeman
doctor
specialpeople
criminal
交通car
policecar
fireengine
ambulance
taxi
truck
bus
newscar
militarycar
municipal
electriccar
watercar
train
ship
cargoship
飞行器airplane
helicopter
uav
satellite
rocket
事件event_01
event_03
event_03
通用icon_01
icon_02
icon_03
icon_04
地名site_01
site_02
site_03

具体内置图标名称(iconName)效果 ​

图标效果

返回本章目录

2. 更新模型轨迹图数据 ​

引入版本:3.3 起支持

功能描述 ​

更新三维场景中添加模型轨迹图的数据

调用方法 ​

JavaScript
let jsonData = [
  {
    id: 'modelTrailLayerId',
    name: 'layerName',
    coordType: 0,
    coordTypeZ: 0,
    isAppend: true,
    duration: 3,
    data: [
      {
        id: '1',
        coord: [0.0036397165615085214, 0.008127412997009031],
        coordZ: 5,
        label: '小汽车1',
        rotation: [0, 180, 0],
        type: 'legendName1',
      },
      {
        id: '2',
        coord: [0.0026397165615037466, 0.00612741299701014],
        coordZ: 5,
        label: '卡车1',
        rotation: [0, 180, 0],
        type: 'legendName2',
      },
      {
        id: '3',
        coord: [0.0016397165615131826, 0.004127412997007696],
        coordZ: 5,
        label: '小汽车2',
        rotation: [0, 180, 0],
        type: 'legendName1',
      },
    ],
  },
  {
    id: 'modelTrailLayerId',
    name: 'layerName',
    coordType: 0,
    coordTypeZ: 0,
    isAppend: true,
    duration: 3,
    data: [
      {
        id: '1',
        coord: [-0.00536028343849182, 0.008127412997009031],
        coordZ: 5,
        label: '小汽车',
        rotation: [0, -90, 0],
        type: 'legendName1',
      },
      {
        id: '2',
        coord: [-0.00536028343849182, 0.00612741299701014],
        coordZ: 5,
        label: '卡车1',
        rotation: [0, -90, 0],
        type: 'legendName2',
      },
      {
        id: '3',
        coord: [-0.00536028343849182, 0.004127412997007696],
        coordZ: 5,
        label: '小汽车2',
        rotation: [0, -90, 0],
        type: 'legendName1',
      },
    ],
  },
  {
    id: 'modelTrailLayerId',
    name: 'layerName',
    coordType: 0,
    coordTypeZ: 0,
    isAppend: true,
    duration: 3,
    data: [
      {
        id: '1',
        coord: [-0.010360283438487272, 0.008127412997009031],
        coordZ: 5,
        label: '小汽车1',
        rotation: [0, -90, 0],
        type: 'legendName1',
      },
      {
        id: '2',
        coord: [-0.009360283438496708, 0.00612741299701014],
        coordZ: 5,
        rotation: [0, -90, 0],
        label: '卡车1',
        type: 'legendName2',
      },
      {
        id: '3',
        coord: [-0.008360283438491933, 0.004127412997007696],
        coordZ: 5,
        rotation: [0, -90, 0],
        label: '小汽车2',
        type: 'legendName1',
      },
    ],
  },
  {
    id: 'modelTrailLayerId',
    name: 'layerName',
    coordType: 0,
    coordTypeZ: 0,
    isAppend: true,
    duration: 3,
    data: [
      {
        id: '1',
        coord: [-0.010360283438487272, 0.0001274129970099125],
        coordZ: 5,
        label: '小汽车1',
        rotation: [0, 0, 0],
        type: 'legendName1',
      },
      {
        id: '2',
        coord: [-0.009360283438496708, 0.0001274129970099125],
        coordZ: 5,
        rotation: [0, 0, 0],
        label: '卡车1',
        type: 'legendName2',
      },
      {
        id: '3',
        coord: [-0.008360283438491933, 0.0001274129970099125],
        coordZ: 5,
        rotation: [0, 0, 0],
        label: '小汽车2',
        type: 'legendName1',
      },
    ],
  },
  {
    id: 'modelTrailLayerId',
    name: 'layerName',
    coordType: 0,
    coordTypeZ: 0,
    isAppend: true,
    duration: 3,
    data: [
      {
        id: '1',
        coord: [-0.010360283438487272, -0.005872587002990315],
        coordZ: 5,
        label: '小汽车1',
        rotation: [0, 0, 0],
        type: 'legendName1',
      },
      {
        id: '2',
        coord: [-0.009360283438496708, -0.004872587002989093],
        coordZ: 5,
        rotation: [0, 0, 0],
        label: '卡车1',
        type: 'legendName2',
      },
      {
        id: '3',
        coord: [-0.008360283438491933, -0.0038725870029914233],
        coordZ: 5,
        rotation: [0, 0, 0],
        label: '小汽车2',
        type: 'legendName1',
      },
    ],
  },
  {
    id: 'modelTrailLayerId',
    name: 'layerName',
    coordType: 0,
    coordTypeZ: 0,
    isAppend: true,
    duration: 3,
    data: [
      {
        id: '1',
        coord: [-0.003360283438496481, -0.005872587002990315],
        coordZ: 5,
        label: '小汽车1',
        rotation: [0, 90, 0],
        type: 'legendName1',
      },
      {
        id: '2',
        coord: [-0.003360283438496481, -0.004872587002989093],
        coordZ: 5,
        rotation: [0, 90, 0],
        label: '卡车1',
        type: 'legendName2',
      },
      {
        id: '3',
        coord: [-0.003360283438496481, -0.0038725870029914233],
        coordZ: 5,
        rotation: [0, 90, 0],
        label: '小汽车2',
        type: 'legendName1',
      },
    ],
  },
  {
    id: 'modelTrailLayerId',
    name: 'layerName',
    coordType: 0,
    coordTypeZ: 0,
    isAppend: true,
    duration: 3,
    data: [
      {
        id: '1',
        coord: [0.0036397165615085214, -0.005872587002990315],
        coordZ: 5,
        label: '小汽车1',
        rotation: [0, 90, 0],
        type: 'legendName1',
      },
      {
        id: '2',
        coord: [0.0026397165615037466, -0.004872587002989093],
        coordZ: 5,
        rotation: [0, 90, 0],
        label: '卡车1',
        type: 'legendName2',
      },
      {
        id: '3',
        coord: [0.0016397165615131826, -0.0038725870029914233],
        coordZ: 5,
        rotation: [0, 90, 0],
        label: '小汽车2',
        type: 'legendName1',
      },
    ],
  },
  {
    id: 'modelTrailLayerId',
    name: 'layerName',
    coordType: 0,
    coordTypeZ: 0,
    isAppend: true,
    duration: 3,
    data: [
      {
        id: '1',
        coord: [0.0036397165615085214, 0.0001274129970099125],
        coordZ: 5,
        label: '小汽车1',
        rotation: [0, -180, 0],
        type: 'legendName1',
      },
      {
        id: '2',
        coord: [0.0026397165615037466, 0.0001274129970099125],
        coordZ: 5,
        rotation: [0, -180, 0],
        label: '卡车1',
        type: 'legendName2',
      },
      {
        id: '3',
        coord: [0.0016397165615131826, 0.0001274129970099125],
        coordZ: 5,
        rotation: [0, -180, 0],
        label: '小汽车2',
        type: 'legendName1',
      },
    ],
  },
];

for (let i = 0; i < jsonData.length; i++) {
  setTimeout(() => {
    appInstance.uniCall('updateModelTrailLayerCoord', jsonData[i], (result) => {
      console.log(result);
    });
  }, i * 999);
}

参数描述 ​

属性类型说明
idString图层对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
nameString图层名称,支持为图层自定义名称
coordTypeNumberXY 轴坐标类别,0:X 经度,Y 纬度;1:X 米,Y 米,相对世界 00 点
coordTypeZNumberZ 轴坐标类别,0:相对 3D 世界 0 海拔;1:相对 3D 世界地表;2:相对 3D 模型表面(单位:米)
isAppendBoolean是否追加数据(按数据顺序),true:按新数据 更新原有重复数据 & 追加新数据;false:清除原有数据 & 重建新数据
durationNumber从上一位置运动到新位置花费的时间(单位:秒),如果启用 modelTrailData 数据服务,同时表示同步数据的时间周期
dataArray定义图层可视化数据
data[0].idString图层子对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
data[0].coordArrayXY 轴坐标,X:经度;Y:纬度
data[0].coordZNumberZ 轴高度(单位:米)
data[0].labelString标签文本
data[0].rotationArrayXYZ 三轴旋转度数 [ 偏航角(单位:角度,0 正北, -360 ~ 360), 俯仰角(单位:角度,0 水平, -360 ~ 360),翻滚角(单位:角度,0 水平, -360 ~ 360)]
data[0].typeString数据点图例类别

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

3. 更新模型轨迹图样式 ​

引入版本:3.3 起支持

功能描述 ​

更新三维场景中添加模型轨迹图的样式

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelTrailLayerId', // 图层对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
  objLife: 60, // 批号消批时间长度
  modelMaxDistance: 10000, // 模型最大可见距离(单位:米),不可见后显示icon
  iconMaxDistance: 20000, // icon最大可见距离(单位:米),不可见后隐藏
  isAutoRotation: false, // 是否自动根据当前位置和上一位置计算运动方向,如果为true的话,data中的rotation将不起作用。
  trackStyle: 'style001', // 尾迹内置风格,详见注释
  trackDuration: 50, // 尾迹粒子生命周期
  trackWidth: 10, // 尾迹粒子的宽度
  trackVisible: 'ShowAll', // 尾迹显示状态,"ShowAll":显示所有对象尾迹,"HideAll":隐藏所有对象尾迹,"对象Id":只显示当前图层特定对象Id的尾迹
  legends: [
    {
      name: 'legendName1', // 图层内图例名称,新建时调用者自己传入的唯一名称,用于各种操作的图例识别
      modelType: 'Car02', // 模型类型
      scale: 0.75, // 整体放缩倍数(单位:倍)
      iconName: 'bus', // 内置图标名称,详见上表;或根据项目,在场景中预置好的图标对象的名称,包含文字样式定义
      trackColor: '#ff0000', // 尾迹颜色
      labelColor: '#000000', // 标签文本颜色,可选值,默认白色
      labelScale: 1, // 标签文本的缩放,默认值是1表示原大,0 - 1:表示缩小倍率,大于1:表示放大倍率
      labelOffset: [0, 0, 2], // 标签文本的位置偏移,默认值是[0, 0, 0],表示相对于模型中心点的x、y、z偏移位置(单位:米)
      labelBackgroundColor: '#ffff00', // 标签文本背景颜色,可选值,默认灰色
    },
    {
      name: 'legendName2', // 图层内图例名称,新建时调用者自己传入的唯一名称,用于各种操作的图例识别
      modelType: 'Car01', // 模型类型
      scale: 1, // 整体放缩倍数(单位:倍)
      iconName: 'taxi', // 内置图标名称,详见上表;或根据项目,在场景中预置好的图标对象的名称,包含文字样式定义
      trackColor: '#ff0000', // 尾迹颜色
      labelColor: '#000000', // 标签文本颜色,可选值,默认白色
      labelScale: 1, // 标签文本的缩放,默认值是1表示原大,0 - 1:表示缩小倍率,大于1:表示放大倍率
      labelOffset: [0, 0, 2], // 标签文本的位置偏移,默认值是[0, 0, 0],表示相对于模型中心点的x、y、z偏移位置(单位:米)
      labelBackgroundColor: '#ffff00', // 标签文本背景颜色,可选值,默认灰色
    },
  ],
};

appInstance.uniCall('updateModelTrailLayerStyle', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString图层对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
objLifeNumber批号消批时间长度
modelMaxDistanceNumber模型最大可见距离(单位:米),不可见后显示 icon
iconMaxDistanceNumbericon 最大可见距离(单位:米),不可见后隐藏
isAutoRotationBoolean是否自动根据当前位置和上一位置计算运动方向,如果为 true 的话,data 中的 rotation 将不起作用。
trackStyleString尾迹风格,端:style001,流:particle-粒子效果,vector-矢量线效果,none-无
trackDurationNumber尾迹粒子生命周期
trackWidthNumber尾迹粒子的宽度
trackVisibleString尾迹显示状态,"ShowAll":显示所有对象尾迹,"HideAll":隐藏所有对象尾迹,"对象 Id":只显示当前图层特定对象 Id 的尾迹
legendsArray定义图层包含图例,支持为不同图例定义各自样式
legends[0].nameString图层内图例名称,新建时调用者自己传入的唯一名称,用于各种操作的图例识别
legends[0].modelTypeStringmodel(模型),building(建筑物),connection(关系线),iconModel(模型型号)
legends[0].scaleNumber整体放缩倍数(单位:倍)
legends[0].iconNameString内置图标名称,或根据项目,在场景中预置好的图标对象的名称,包含文字样式定义,具体图标名称参考上表和上图
legends[0].trackColorString尾迹颜色
legends[0].labelColorString标签文本颜色,可选值,默认白色
legends[0].labelScaleNumber标签文本的缩放,默认值是 1 表示原大,0 - 1:表示缩小倍率,大于 1:表示放大倍率
legends[0].labelOffsetArray标签文本的位置偏移,默认值是[0, 0, 0],表示相对于模型中心点的 x、y、z 偏移位置(单位:米)
legends[0].labelBackgroundColorString标签文本背景颜色,可选值,默认灰色

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

4. 删除模型轨迹图 ​

引入版本:3.0 起支持

功能描述 ​

删除模型轨迹图

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelTrailLayerId', // 图层对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
  overlayType: 'modelTrailLayer', // 图层对象类别
};

appInstance.uniCall('removeOverlay', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString图层对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
overlayTypeString图层对象类别

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

流渲染效果图 ​

系统架构图

端渲染效果图 ​

系统架构图

返回本章目录