实景模型

实景模型是一个三维模型,它是从大量重叠图像中自动化捕获真实的建筑物和环境所形成的。它能客观真实地反应现实世界。

实景模型

实景模型是一个三维模型,它是从大量重叠图像中自动化捕获真实的建筑物和环境所形成的。它能客观真实地反应现实世界。

在场景中,实景模型使用的图层为RealityLayer

1. 功能说明

实景模型中功能主要有两点:一是在场景中加载实景模型,二是对实景模型进行裁剪与否操作。具体功能可往后查阅,其中有详细的介绍和使用。

2. 构造

new RealityLayer(properties)

代码示例如下:

const layer = new ubm.RealityLayer({
  id: 'qsq',
  title: '青山区',
  url: 'https://stream.rinkslab.com:8060/stream/i3s/OYFNsphMZp8x/PUgYcMkJE9Np/青山区/青山区/SceneServer',
})

传递给构造函数RealityLayer的所有属性列表properties可查看后续属性说明。

3. 属性

属性类型可选说明
idstring必填图层唯一标识
titlestring---图层的名称
urlstring必填图层资源的访问url
modificationsModification[]---修改裁剪
elevationInfoElevationInfo---指定特征如何放置在垂直轴(Z)上

3.1 修改裁剪

  • 裁剪modifications的数据结构如下:
interface Modification {
  //裁剪多边形位置
  coordinates: number[][][]
  // 裁剪修改的类型
  type: ModificationType
}
  • 裁剪修改的类型type的数据结构如下:
type ModificationType = 'clip' | 'mask' | 'replace'

其中:clip是默认值,指的是移除所选区域;mask是仅显示所选区域;replace是展平所选区域。

  • 裁剪

设置模型需要裁剪的范围和裁剪修改的类型,代码示例如下:

layer.modifications = [{
    coordinates: [
      [
        [114.395143, 30.623756],
        [114.399472, 30.623764],
        [114.399462, 30.621818],
        [114.395079, 30.621703],
      ]
    ],
    type: 'clip'
  }]
  • 清除裁剪

对已经裁剪的模型执行清除裁剪效果的操作,代码示例如下:

layer.modifications = []

3.2 指定特征如何放置在垂直轴(Z)上

属性elevationInfo用于指定特征(如:建筑物、地形等)如何在垂直轴(Z轴)上放置和显示。

其中属性elevationInfo的类型ElevationInfo的数据结构如下所示:

interface ElevationInfo {
  // 放置模式: 在地形上'on-the-ground'、相对地形'relative-to-ground'、相对场景'relative-to-scene'和绝对高度'absolute-height'(默认值)
  mode: string,
  // 偏移值,当mode = "on-the-ground"时,此属性不生效
  offset: number
  // 偏移值单位
  unit?: 'feet' | 'meters' | 'kilometers' | 'miles' | 'us-feet' | 'yards'
}

BIMFlux AI