云境三维图层类,基于tileset自动加载和渲染云境三维模型

const { YunJingLayer, AMapTerrain, AMapSatelliteLayer } = YunJing;
const viewer = new Cesium.Viewer('cesiumContainer', {
terrain: new AMapTerrain('gcj02'),
baseLayer: new AMapSatelliteLayer(),
contextOptions: {
webgl: {
logarithmicDepthBuffer: false,
preserveDrawingBuffer: true,
},
requestWebgl2: true,
scene3DOnly: true,
},
});
viewer.scene.globe.depthTestAgainstTerrain = true;
const yunjing = new YunJingLayer({
url: '../data/xiamen17/tileset02.json',
viewer,
});

Hierarchy

  • EventEmitter
    • YunJingLayer

Constructors

Accessors

  • get depthTest(): boolean
  • 获取深度写入开关

    Returns boolean

  • set depthTest(v): void
  • 设置深度写入开关

    Parameters

    • v: boolean

      深度写入开关

    Returns void

  • get light(): LightOptions
  • 获取光源信息,光源信息:@LightOptions

    Returns LightOptions

  • set light(light): void
  • 设置光源信息,光源信息:@LightOptions

    Parameters

    Returns void

  • set lodFactor(v): void
  • 设置模型的 lodFactor,可以实现模型整体精细度的调整,值越小模型越精细

    Parameters

    • v: number

    Returns void

  • get material(): MaterialOptions
  • 获取材质信息,材质详细:@MaterialOptions

    Returns MaterialOptions

  • set material(material): void
  • 设置材质信息,材质详细:@MaterialOptions

    Parameters

    Returns void

  • get sunLight(): any
  • 获取太阳光颜色和强度,光源信息:@SunLightOptions

    Returns any

  • set sunLight(sunLight): void
  • 设置太阳光颜色和强度,光源信息:@SunLightOptions

    Parameters

    • sunLight: any

    Returns void

Methods

  • Parameters

    • event: string

    Returns void

  • 彻底销毁图层,释放内存显存

    Returns void

  • Type Parameters

    • T

    Parameters

    • event: string
    • data: T

    Returns void

  • Returns number

  • 获取相机的位置和orientation

    Returns undefined | CameraPos

  • 获取模型当前的 enuCenter

    Returns undefined | [number, number, number]

    enuCenter

  • 获取索引数据库

    此方法用于获取当前瓦片集合的索引数据库(IndexDB)它提供了一种在客户端存储大量数据的方法, 并允许进行高效的查询操作这种数据库特别适合用于需要大量数据存储和检索的Web应用程序

    Returns undefined | ArrayBufferDB

    返回一个 IndexDB 缓存实例,它封装了 IndexDB 的访问接口

  • Returns undefined | (SameHeightBounds | PerPosHeightBounds)[]

  • 获取最大俯仰角度

    Returns number

    最大俯仰角度

  • Returns number

  • Returns number[][][]

  • Returns string

  • 隐藏图层

    Returns void

  • Type Parameters

    • T

    Parameters

    • event: string
    • handler: EventHandler<T>

    Returns void

  • Type Parameters

    • T

    Parameters

    • event: string
    • handler: EventHandler<T>

    Returns void

  • 根据CesiumJS屏幕交互事件screenSpaceEventHandler的位置获取EntityInfos中的某个对象

    Parameters

    • position: Cartesian2

      screenSpaceEventHandler回调的movement.position

    Returns null | EntityInfo

    拾取到的话返回EntityInfo,否则返回null

    const entityInfos = [
    {
    id: 1,
    name: '乐多港',
    polygon: [
    [116.186427, 40.233819],
    [116.181798, 40.234306],
    [116.181248, 40.232781],
    [116.182637, 40.22721],
    [116.185069, 40.226968],
    ],
    height: 58,
    extrudedHeight: 120,
    },
    ];
    const yunjing = new YunJingLayer({
    url: '../data/xiamen17/tileset02.json',
    viewer,
    entityInfos
    });
    const entityInfo = yunjing.pickEntity(movement.position); //拾取单体
    if (entityInfo) {
    yunjing.selectedEntity(entityInfo.id, {
    //高亮单体
    fillColor: Cesium.Color.RED.withAlpha(0.5),
    });
    } else {
    yunjing.selectedEntity(null);
    }
  • Parameters

    • movement: any

    Returns undefined | {
        contours: any;
        id: any;
        max_height: any;
        min_height: any;
    }

  • Returns void

  • 根据CesiumJS屏幕交互事件screenSpaceEventHandler的位置获取云境模型上某个位置的经纬度和海拔、地心坐标

    Parameters

    • position: Cartesian2

      screenSpaceEventHandler回调的movement.position

    Returns null | YunJingEvent

    拾取到的话返回经纬度坐标和地心坐标,否则返回null

    viewer.screenSpaceEventHandler.setInputAction(function (movement) {
    const pos = yunjing.pickPosition(movement.position);
    if (pos) {
    console.log(pos.lnglat); //GPS坐标位置 {lng,lat,alt}
    console.log(pos.ecef); //地心地固坐标坐标
    }
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
  • 按照一定范围预加载模型文件,加载到cacheSize缓存满为止

    Parameters

    • Optionalcenter: [number, number, number]

      预加载的中心经纬高,缺省时候为相机位置

    • distance: number = 1000

      从中心位置开始预加载的距离,单位为m

    • Optionalcbk: (() => any)
        • (): any
        • Returns any

    Returns void

  • 高亮显示某个EntityInfo对应的单体对象区域

    Parameters

    • id: string | number

      要高亮的单体的对象id

    • hightLightStyle: HightLightStyle

      高亮的样式,目前只支持颜色覆盖

    Returns void

    const entityInfo = yunjing.pickEntity(movement.position); //拾取单体
    if (entityInfo) {
    yunjing.selectedEntity(entityInfo.id, {
    //高亮单体
    fillColor: Cesium.Color.RED.withAlpha(0.5),
    });
    } else {
    yunjing.selectedEntity(null);
    }
  • 设置ENU中心点

    Parameters

    • enuCenter: null | number[]

    Returns void

  • 设置最大观察角度

    Parameters

    • OptionalmaxPitch: number

      最大俯仰角度

    Returns void

  • 设置最小观察高度

    Parameters

    • OptionalminHeight: number

      最小高度

    • OptionalminRange: number

      最小距离

    • OptionalmaxRange: number

      最大距离

    Returns void

  • 针对每一个层级的LOD模型,单独设置模型精细度加载策略

    Parameters

    • scale: number[]

      LOD 缩放,[0.5,2], 数值越大远处越精细,性能开销越大, 缺省时使用默认值:[1,1,1,1];数组的索引代表LOD层级 比如 [10, 1, 1, 1] 的表示第0层和第1层模型精细度都为10倍(会尽快看到模型),第2层和第3层模型精细度都为1倍

    Returns void

  • 设置三维图层的可见性

    Parameters

    • key: string
    • visible: boolean

    Returns void

  • 显示图层

    Returns void

  • 太阳光是否开启

    Returns void