EarthViewer 三维场景控件。用于显示地球坐标或者直角坐标的三维场景,包括动态图层,粒子系统等,是开发三维应用的首要控件。
Members
-
onAfterRender : Observable<EarthViewerRenderEvent>
-
绘制完成后发出
-
onBeforeRender : Observable<EarthViewerRenderEvent>
-
绘制开始前发出
-
onClickObject : Observable<GeoObject3PickEvent>
-
点击选中物体时发出
-
onDragEnd : Observable<GeoObject3PickEvent>
-
拖动结束消息
-
onDragMove : Observable<GeoObject3PickEvent>
-
拖动鼠标移动消息
-
onDragStart : Observable<GeoObject3PickEvent>
-
拖动开始
-
onEnterObject : Observable<GeoObject3PickEvent>
-
鼠标移动到物体表面时发出
-
onLeaveObject : Observable<GeoObject3PickEvent>
-
鼠标移出到物体表面时发出
-
onMouseLeftButtonDoubleClick : Observable<MouseButtonEventArgs>
-
鼠标左键双击发出
-
onMouseRightButtonDoubleClick : Observable<MouseButtonEventArgs>
-
鼠标右键双击发出
-
onTrackFinish : Observable<EarthViewerTrackEvent>
-
屏幕跟踪操作完成时发出
-
onUnclickObject : Observable<GeoObject3PickEvent>
-
物体失去选中焦点时发出
-
坐标轴箭头大小比例
-
axisColor : Color
-
坐标轴颜色
-
坐标轴长度米
-
backgroundColor : Color
-
三维场景背景色
-
globeColor : Color
-
地球缺省背景颜色
-
是否处于活动状态
-
设为动画模式,会保持连续重画
-
三维直角坐标模式下是否显示坐标轴
-
是否调换YZ坐标轴
-
是否是地球坐标。设置false时,为三维直角坐标模式
-
是否允许鼠标移过物体表面时选择
-
是否开启雾效
-
是否在状态栏显示FPS
-
是否高亮显示选中对象
-
是否显示指北针
-
是否允许选择
-
是否显示直角坐标模式下的旋转中心
-
是否显示天空。缺省情况下,地球模式显示,直角坐标模式不显示
-
是否显示底部信息工具条
-
是否已经显示地形
-
最大地形显示层级
-
最小使用地形的层级,缺省为4
-
readonly camera : Camera
-
相机对象
-
readonly clientRect : Rect
-
场景屏幕区域
-
readonly coordSystem : ICoordSystem3
-
三维坐标对象
-
readonly depthView : DepthView
-
深度纹理视图
-
readonly elevationView : ElevationView
-
地形高程视图,用于获取高程纹理,颜色纹理等,通常用于Gpu计算
-
readonly engine : Engine
-
引擎对象,负责所有的基础三维渲染和计算
-
readonly globalScene : Scene
-
全局Scene对象,通常用于创建Babylon材质比较方便
-
readonly graphics : Graphics3
-
图形设备对象
-
是否有鼠标键按下
-
readonly imageProviders : NameObjectList<IImageProvider>
-
瓦片层数据集合,可以添加叠加多个瓦片影像层
-
系统保留
-
readonly layers : Layer3Collection
-
场景中所有图层集合
-
readonly mousePosition : Vector3
-
鼠标地球坐标
-
readonly night : DarkLightSystem
-
EarthViewer内置夜晚暗光系统,用于方便开发昼夜切换功能。根据hours自动控制跟阳光系统的关系,自动点亮灯光,跟阳光系统使用相同的图层集合。使用night属性后,sunLight会自动启动和关闭。
-
readonly renderContext : RenderContext3
-
显示上下文
-
readonly terrainCalculator : ITerrainCalculator
-
地形计算接口
-
readonly terrainColorSetting : TerrainColorSetting
-
地形高程设色属性对象
-
readonly terrainLayer : TerrainLayer
-
地形图层。这是需要获取,并不包含在layers中。通常用于分析视图使用
-
readonly terrainProviders : NameObjectList<ITerrainProvider>
-
地形层数据集合,可以添加叠加多个地形数据层。范围小的地形尽量添加在靠后的位置
-
用于大数据场景下的性能优化,表示动画时每隔几帧刷新画面,必须为整数值。比如2,则为30fps。缺省未设置,为60fps。通常水面动画可以设置为2,如果是模型动画或者例子系统,降低帧率会影响效果。该值可以根据画面内容动态设置。
-
卷帘对比的分隔位置 0-1, 0为左侧
-
地形拉伸(夸张)的比例系数。如果动态改变该值,只有重新调用open之后才会起作用
Methods
创建一个新的EarthViewer
Name | Type | Description |
---|---|---|
htmlUI |
string | HTMLDivElement | 容纳EarthViewer的HTMLDivElement的id字符串或者对象本身 |
fatherUI |
UIElement | optional用于嵌套系统界面布局,通常不需要使用 |
添加地面孔洞对象。通常用于地面坑道开挖显示
Name | Type | Description |
---|---|---|
polygonPoints |
Vector3[] | 孔洞多边形点数组 |
添加用户自定义地形计算图层。一般使用倾斜摄影图层
Name | Type | Description |
---|---|---|
layer |
Layer3 |
添加选中对象
Name | Type | Description |
---|---|---|
geoObject |
GeoObject3 |
清除所有地面孔洞对象
清除所有自定义地形计算图层
清除地形降低范围
清除选中对象
清除屏幕跟踪结果
删除并释放EarthViewer对象
getPicked() → Array<GeoObject3>
获取选中对象集合
是否有alt键按下@returns
是否有ctrl键按下@returns
是否有shift键按下@returns
创建EarthViewer之后必须首先调用此方法。自4.0版以后自动启用WebGPU渲染, 如果需要强制使用gl渲染模式,需要传入{gpu:false},或者使用Setting.Gpu=false控制
Name | Type | Description |
---|---|---|
options |
IEarthViewerInitOptions | optional初始化参数,可选 |
open(imageProvider,terrainProvider) → Promise<EarthViewer>
打背景影像和地形
Name | Type | Description |
---|---|---|
imageProvider |
IImageProvider | optional瓦片数据提供对象。如不提供,缺省打开Bing或者天地图 |
terrainProvider |
ITerrainProvider | optional地形数据提供对象。如不提供,则地表保持基准高度 |
openStyleMap(styleUrl) → StyleMap
通过指定的url加载Maplibre style文件到当前三维场景,其中线面层以及沿线标注叠加绘制到三维地形上,点状标注为三维立体绘制。返回的StyleMap对象等同于maplibrejs的map对象。三维场景中只能绘制一个style map,如果用新的url再次调用该方法时,将会关闭和释放当前map。drawsee在融合代码的过程中,保留了与style数据模型操作有关的api,去除了与场景显示和交互操作的部分,留下的方法、消息以及类名称与原api完全相同。具体调用方法请参考maplibrejs的相关文档。在drawsee库中,所有的maplibrejs类名称和全局函数名称使用Mpl模块前缀,比如 let p = new Mpl.Point(0,0)map中图层显隐,绘制参数,动态添加数据源、图层等,都可以通过原生api实现。drawsee只负责渲染
Name | Type | Description |
---|---|---|
styleUrl |
string | style文件url |
pick(screenX,screenY,resultPosition) → GeoObject3
使用屏幕坐标点选择一个对象
Name | Type | Description |
---|---|---|
screenX |
number | 屏幕x坐标 |
screenY |
number | 屏幕y坐标 |
resultPosition |
Vector3 | optional保存选中对象表面的坐标 |
显式激发三维场景重画
恢复系统缺省雾气设置
设置当前操作类型,可以传入一个激发对象的唯一标示callerInfo
Name | Type | Description |
---|---|---|
tool |
EarthToolType | 操作类型 |
callerInfo |
any | optional调用者的标示,可以使用字符串。这样在trackerCompleted回调函数参数里,可以区分不同的调用者 |
设置雾气效果
Name | Type | Description |
---|---|---|
fogStart |
number | 雾气开始距离米 |
fogEnd |
number | 雾气达到最大浓度距离米 |
fogColor |
Color | optional雾气颜色,仅rgb有效 |
降低指定范围的地形,以便配合倾斜摄影等的显示。系统仅仅是调整内部DepthBuffer控制深度裁剪,视觉显示高度并不变化。
Name | Type | Description |
---|---|---|
points |
Array<Vector2> | Array<Vector3> | 二维或者三维点数组指定的多边形范围 |
lowerMeters |
number | 米数,负值为降低 |
staticCaptureScreenshot(earthViewer) → HTMLImageElement
将EarthViewer当前显示的三维场景截屏到Image控件,以便保存为图像数据
Name | Type | Description |
---|---|---|
earthViewer |
EarthViewer |