3D 场景简介
https://developers.arcgis.com/javascript/latest/scenes-3d/
地图是管理层 (layer) 与底图 (basemap) 引用的容器. 视图 (View) 是用于展示地图, 并提供用于与用户交互的控件, 例如小部件, 定位, 弹窗等.
Map
用于处理地图数据 (层 + 底图).- 将
Map
置于MapView
中, 即显示 2D 地图. - 将
Map
置于SceneView
中, 即显示 3D 地图.
似乎
SceneView
与MapView
的用法一样.
创建地图
用法与 MapView 几乎一样.
import SceneView from '@arcgis/core/views/SceneView'
// ...
const view = new SceneView({
map: map,
container: ...
})
创建地图的其他方法 (略)
- 从 web scene 创建
- 从 WebScene 创建
使用视图
视图的主要目的就是为了展示地图.
设置地图的可视区域 (visible portion)
设置可视区域的方式有两种
- 与
MapView
一样, 使用center
,zoom
, 和scale
- 另一种是设置
camera
.
// 使用摄像机
const view = new SceneView({
camera: {
position: [
经度,
纬度,
海拔(m),
],
heading: 相机方向,
tilt: 相机与地面倾角
}
})
JK: 这里的
heading
,tilt
参数不太直观.细节可以参考: https://developers.arcgis.com/javascript/latest/tutorials/display-a-scene/
转到某个位置
用法与 MapView
一样.
view.goTo({
{ center: [ ... ] },
{ duration: ... }
})
交互
添加交互事件, 逻辑与 MapView
中的用法一样.
view.on('事件', fn)
添加小部件
用法与 MapView
中的一样.
基本步骤:
- 实例化小部件.
- 利用
view.ui.add(...)
将小部件添加到视图中.