jk's notes
  • 3D 场景简介

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)

设置可视区域的方式有两种

  1. 与 MapView 一样, 使用 center, zoom, 和 scale
  2. 另一种是设置 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 中的一样.

基本步骤:

  1. 实例化小部件.
  2. 利用 view.ui.add(...) 将小部件添加到视图中.
Last Updated:
Contributors: jk