一,背景

地球相机控制器(所有新场景中的默认相机控制器)允许用户通过放大/缩小和平移地球来自由探索场景。轨道摄像机控制器固定摄像机以查看目标位置或地质元素。主要用例是跟踪汽车和飞机等移动物体。

二,相关api

  • ArcGISScene:类似与ArcGISMap 3D底图
  • Camera:表示一个不可变的相机对象。相机具有位置、航向和俯仰。
  • 位置 - 相机所在的空间中的 3D 点。相机不能位于 BaseSurface 以下的高度。
  • 航向 - 0 到 360 之间的值。表示 ENU(东、北、地面参考系)中从北顺时针方向的角度。允许使用负标题并且标题可以环绕(即 361 环绕到值 1)。
  • Pitch - 一个从 0 到 180 的值。表示在 ENU 中围绕其 y 轴旋转时应用于相机的角度。0 是直视地球中心,180 是直视(天空)。不允许使用负间距,并且值不会环绕。如果需要负音高的行为,则可以设置相应的正音高变换。例如,如果需要 heading:0 pitch:-20 roll:0 则可以使用 heading:180 pitch:20 roll:180 代替。
  • Roll - 一个从 0 到 360 的值。表示在 ENU 中围绕其 x 轴旋转时应用于相机的角度。0 是“水平的”。

可以根据位置、航向和俯仰值创建摄像机。例如:
Camera camera = new Camera(new Point(0, 0, 2000000, SpatialReferences.getWgs84()), 90, 45, 0);

  • GlobeCameraController:表示默认的相机控制器。它用于执行自由漫游的全球导航。
  • OrbitGeoElementCameraController:表示将场景视图的相机限制为(可能正在移动)的相机控制器GeoElement

场景视图上的交互将使相机围绕目标旋转,以便相机始终注视目标。相机将以相对于目标的位置移动。激活时,将禁用在场景视图上设置视点。

  • OrbitLocationCameraController:表示限制场景视图的相机绕固定位置运行的相机控制器。

场景视图上的交互将使相机围绕目标位置旋转,因此相机始终注视该点。激活时,将禁用在场景视图上设置视点

  • SceneView:类似与mapview 3D控件

    三,使用

  1. 创建一个类的实例,扩展CameraController: GlobeCameraController, OrbitLocationCameraController, OrbitGeoElementCameraController.
  2. 使用 设置场景视图的相机控制器sceneView.cameraController = CameraController。
  3. *copyFilesFromAssetsToCache