Viewer(options)

Motor视窗,参考初始化

new Viewer(options)

Parameters:
Name Type Description
options Object

包含以下参数的Object对象

Properties
Name Type Attributes Default Description
container Element | String

包含视窗的DOM元素或者ID

appid String

用户appid

secret String

用户secret

viewerMode ViewerMode <optional>
ViewerMode.CIM

默认视窗模式

navigationMode NavigationMode <optional>
NavigationMode.NAV_FREE_MOUSE

默认导航模式

access_token String <optional>

默认的access_token

map BaseMap <optional>
new Motor.TiandituMap()

默认的地图底图

enableBloom Boolean <optional>
false

是否开启辉光

enableAO Boolean <optional>
false

是否开启环境光遮蔽

enableShadow Boolean <optional>
false

是否开启阴影

enableSkyBox Boolean <optional>
true

是否开启天空盒和环境贴图

enableFixedFrameRate Boolean <optional>
false

是否开启固定帧率

enableBIMViewCube Boolean <optional>
true

是否开启导航方块,默认开启,移动端不开启

taaEnabled Boolean <optional>
false

开启TAA抗锯齿

antialias Boolean <optional>
true

开启MSAA抗锯齿

enableTouchControl Boolean <optional>
false

开启触屏控制

viewCubeConfig ViewCubeConfig <optional>

导航方块参数

cimControlMode CIMControlMode <optional>
Motor.CIMControlMode.MOTOR

CIM模式下的鼠标控制逻辑

backgroundColor Color <optional>
new Motor.Color(0.93,0.95,0.96)

背景颜色,仅适用于BIM模式

enableVignetteMode Boolean <optional>
false

开启渐变背景颜色

enableWebgl2 Boolean <optional>
true

启用WebGL2

backgroundColor1 Color <optional>

渐变背景色1

backgroundColor2 Color <optional>

渐变背景色2

backgroundImageCss String <optional>

背景图片Css样式

skyBox SkyBox <optional>

天空盒对象

isFlashlight Boolean <optional>
false

是否开启手电筒光源模式

showMoon Boolean <optional>

显示月亮

showUniverse Boolean <optional>

显示星空

showAtmosphere Boolean <optional>

显示大气

fullscreenElement Element <optional>

全屏的目标DOM元素

fullscreenButton Boolean <optional>

全屏按钮显示隐藏

drawEdge Boolean <optional>

显示边线

enableLazyLoad Boolean <optional>
false

开启懒加载模型网格

lazyLoadMaxByteLength Number <optional>
1000000

懒加载网格字节数

Example
var viewer = new Motor.Viewer({
  container: 'container',
  viewerMode: Motor.ViewerMode.BIM,
  appid: appid,
  secret: secret
});

Members

adsorbEditor :AdsorbEditor

捕捉编辑器

allowCameraUnderground :Boolean

是否允许相机进入地下

Default Value:
  • false

ambientOcclusion :AmbientOcclusion

环境光遮蔽对象,用于控制环境光遮蔽强度

Example
viewer.ambientOcclusion.uniforms.intensity = 2

animatedSpeed :Number

获取或设置3D-Tiles建筑物拔地而起的动画速率,参考特效

readonly antialias :Boolean

获取或设置TAA抗锯齿模式状态

camera :Camera

相机对象

cameraChanged :Event

相机移动事件

cameraMoveEnd :Event

相机结束移动的事件

cameraMoveStart :Event

相机开始移动的事件

cimControlMode :CIMControlMode

获取或设置CIM场景下的鼠标控制模式,参考模式切换

controller :OrbitControl|ScreenSpaceCameraController

相机控制器,BIM模式下为OrbitControl, CIM模式下为ScreenSpaceCameraController

drawEdge :Boolean

绘制边框线

edgeColor :Color

设置边框线颜色

enableAO :Boolean

开启或关闭环境光遮蔽

enableMarquee :Boolean

开启/关闭框选放大,参考视角控制

enableShadow :Boolean

开启或关闭阴影

enableSharpen :Boolean

锐化开关

enableSkyBox

开启或关闭天空盒子

enableSnap :Boolean

开启或关闭捕捉点

envDate :Date

获取或设置场景时间, javascript的Date对象

isFlashlight :Boolean

是否开启手电筒光源模式

logarithmicDepthBuffer :Boolean

获取或设置对数深度

mapCollection :MapCollection

地图图层集合

获取或设置导航模式,参考视角控制

planeModeOrigin

平面模式下的原点在ECEF坐标系下的位置

postProcessStages :PostProcessStageCollection

后处理集合

roamEditor :RoamEditor

第一人称视角控制器

shadowMap :ShadowMap

阴影贴图

Example
viewer.shadowMap.darkness = 0.5;

shouldAnimate :Boolean

是否开启时间动态

showAtmosphere :Boolean

显示隐藏大气

showMoon :Boolean

控制月亮显隐

showUniverse :Boolean

显示隐藏星空

skyBox :SkyBox

获取或设置场景天空盒

sunlightIntensity :Number

阳光强度

Default Value:
  • 1.5

taaEnabled :Boolean

开启TAA抗锯齿

viewerMode :ViewerMode

获取或设置当前视窗模式(BIM/CIM),参考模式切换

waterFlowSpeed :Number

水流速度

Methods

addMouseEventListener(eventType, eventHandler, modifier)

添加鼠标事件,参考点选操作

Parameters:
Name Type Description
eventType MouseEventType

事件类型

eventHandler EventHandler

回调函数

modifier Number

组合按键码

addParticleSystem(particleSystem) → {ParticleSystem}

添加粒子系统效果

Parameters:
Name Type Description
particleSystem ParticleSystem
Returns:
ParticleSystem

addVideoProjection(options) → {VideoProjection}

添加视频投影,参考特效

Parameters:
Name Type Description
options Object

包含以下参数的对象

Properties
Name Type Attributes Default Description
videoUrl String

视频地址,必须是HTML5支持的视频格式

near Number <optional>
1

投影近截面

far Number <optional>
100

投影近截面

viewerPosition Cartesian3 <optional>
new Motor.Cartesian3(0,0,0)

投影原点

targetPosition Cartesian3 <optional>
new Motor.Cartesian3(0,0,0)

投影目标点

heading Number <optional>

投影方向

pitch Number <optional>

投影方向上的俯仰角

roll Number <optional>

绕投影方向的旋转角

Returns:
VideoProjection

addWater(positions, optionsopt)

添加水面,参考特效

Parameters:
Name Type Attributes Description
positions Array.<Cartesian3>

水面多边形顶点数组

options Object <optional>

包含以下参数的对象

Properties
Name Type Attributes Default Description
flowAngle Number <optional>
0

水流方向

reflectFactor Number <optional>
0.5

反射系数

speed Number <optional>
0.05

水流速度

waterColor Number <optional>
new Motor.Color(0, 0.5, 0.5)

颜色

cartesianToCanvasCoordinates(point, result)

将三维坐标转成当前屏幕坐标

Parameters:
Name Type Description
point Cartesian3
result Cartesian2

createVolumeRender(options) → {VolumeRender}

添加体渲染,参考特效

Parameters:
Name Type Description
options Object

包含以下参数的对象

Properties
Name Type Attributes Default Description
dimensions Array.<Number>

体渲染包围盒长宽高

center Cartesian3

包围盒中心三维坐标

image String

体渲染数据图片

isRGB Boolean <optional>
true

是否按照图片颜色显示

colorScheme Array.<Object> <optional>

自定义色表

alphaCorrection Number <optional>
0.5

透明度修正指数

Returns:
VolumeRender
Example
var volumeRender = viewer.createVolumeRender({
    center: Motor.Cartesian3.fromDegrees(121,31,300),
    dimensions: [15520.3208, 12046.920233, 600],
    image: 'path/to/volume/image',
    isRGB: false,
    alphaCorrection: 0.1,
    colorScheme: [
        {stop: 0.1, color: 'rgba(0, 0, 255, 0.6)'},
        {stop: 0.2, color: 'rgba(162, 180, 189, 1)'},
        {stop: 0.4, color: 'rgba(255, 255, 0, 1)'},
        {stop: 0.6, color: 'rgba(245, 152, 105, 1)'},
        {stop: 0.8, color: 'rgba(255, 10, 10, 1)'},
        {stop: 1.0, color: 'rgba(255, 0, 0, 1)'},
    ]
});

destroy() → {Object}

销毁Viewer

Returns:
Object -

销毁后的对象

drillPick(start, end, resultsopt) → {Promise.<Array.<Cartesian3>>}

获取两个点连线所经过的碰撞点

Parameters:
Name Type Attributes Description
start Cartesian3

起点坐标

end Cartesian3

终点坐标

results Array.<Cartesian3> <optional>

存放结果的数组

Returns:
Promise.<Array.<Cartesian3>>

flyTo(object, callback, duration)

飞向目标

Parameters:
Name Type Description
object FlyOption | Project | Component | Array.<Component>

飞行参数、工程对象或者构件对象

callback function

飞行完成后的回调函数

duration Number

飞行时间

getOpeningProjectList() → {Array.<Project>}

获取当前场景中已经打开的工程对象

Returns:
Array.<Project>

getProjectList() → {Promise.<Array.<Project>>}

获取当前账号中的所有工程

Returns:
Promise.<Array.<Project>>

homeView()

CIM模式下,视角定位到全球

initialize() → {Promise}

初始化Viewer

Returns:
Promise

isDestroyed() → {Boolean}

Viewer是否销毁

Returns:
Boolean

isolateComponents(options, blockopt)

根据工程和构件列表隔离构件

Parameters:
Name Type Attributes Default Description
options Object

包含以下参数的对象

Properties
Name Type Description
project Project

工程对象

components Array.<Component> | Array.<String>

构件或者构件id列表

block Boolean <optional>
false

是否屏蔽构件

loadModel(options) → {Object}

加载gltf模型,参考加载数据

Parameters:
Name Type Description
options Object

包含以下参数的Object对象

Properties
Name Type Attributes Default Description
url String

模型路径

origin Cartesian3

放置模型的原点坐标

translation Cartesian3 <optional>
new Cartesian3(0,0,0)

XYZ轴的平移量

rotationZ Number <optional>
0

Z轴旋转量

zoomTo Boolean <optional>
true

加载完成后,镜头是否移动到模型

luminanceAtZenith Number <optional>
0.2

模型亮度,[0-1]

Returns:
Object -

返回模型对象

Example
var model = viewer.loadModel({
 url:'path/to/model.gltf',
 origin:Motor.Cartesian3.fromDegrees(121,31,0)
})

loadTileset(options) → {Object}

添加3d-tiles数据,参考加载数据

Parameters:
Name Type Description
options Object

包含以下参数的对象

Properties
Name Type Attributes Default Description
url String

数据地址

useGradual Boolean <optional>
false

是否开启渐变特效

planView Boolean <optional>
false

是否开启俯视压平特效

shouldAnimate Boolean <optional>
false

是否开启建筑上升动画特效

gradualOptions Object <optional>

渐变特效参数

Properties
Name Type Attributes Description
startColor Object <optional>

渐变起始颜色

endColor Object <optional>

渐变结束颜色

gradualOffset Object <optional>

渐变结束高度

luminanceAtZenith Number <optional>
0.2

模型亮度,[0-1]

zoomTo Boolean <optional>
true

加载完成后,镜头是否移动到模型

Returns:
Object -

tileset对象

pick(cartesian2, projectopt) → {Component|MarkerView|Object}

根据屏幕坐标获取场景对象,参考点选操作

Parameters:
Name Type Attributes Description
cartesian2 Cartesian2

屏幕坐标

project Project <optional>

指定pick的工程,不传入工程就默认拾取所有工程

Returns:
Component | MarkerView | Object -

返回构件、标注、或者几何对象

pickPosition(cartesian2) → {Cartesian3}

根据屏幕坐标获取三维空间坐标,参考点选操作

Parameters:
Name Type Description
cartesian2 Cartesian2

屏幕坐标

Returns:
Cartesian3 -

三维坐标

queryProject(guid, optionsopt)

根据guid请求工程对象

Parameters:
Name Type Attributes Description
guid String

工程guid

options Object <optional>

配置参数

Properties
Name Type Attributes Description
forceCenter Array <optional>

中心点经纬度

remove(primitive)

删除模型或者3d-tiles数据

Parameters:
Name Type Description
primitive Object

模型或者3d-tiles对象

removeMouseEventListener(eventType)

移除鼠标事件,参考点选操作

Parameters:
Name Type Description
eventType MouseEventType

事件类型

removeParticleSystem(particleSystem)

移除粒子系统效果

Parameters:
Name Type Description
particleSystem ParticleSystem

removeVideoProjection(videoProjection)

删除视频投影,参考特效

Parameters:
Name Type Description
videoProjection VideoProjection

视频投影特效实例化对象

removeVolumeRender()

删除体渲染,参考特效

removeWater(water)

删除水面,参考特效

Parameters:
Name Type Description
water Water

水面特效类的实例化对象

setGlobeVisibility(visibility)

设置地球可见性

Parameters:
Name Type Description
visibility Boolean

setMouseEventByKey(key, type)

Parameters:
Name Type Description
key Number

鼠标按键 CameraEventType

type Number

控制类型缩放、平移、旋转 CameraControlType

startOrbiting()

地球开始地球自转

stopOrbiting()

地球停止自转

switchToOrthographic()

切换正交视图

switchToPerspective()

切换透视视图

updateVolumeRender(image)

更新体渲染数据,参考特效

Parameters:
Name Type Description
image String | Image

图片url