1. 视角锁定
3.x中的map.centerAt 功能在4.x中被移除了,取而代之的是功能更加强大的动态摄像头追逐 view.goTo 功能。
2. SceneView.goTo ( GoToTarget3D , GoToOptions3D )
先上api
https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#camera
https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#goTo
https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#GoToTarget3D
https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#GoToOptions3D
因为goTo的操作本质上是对设想有 也就是 view.camera类(摄像机)的操作,所以api直接查询SceneView的camera属性就可以了
有兴趣可以去了解一下摄像机对象 camera类 这也是webgl结构下的很重要概念;
camera的api地址 https://developers.arcgis.com/javascript/latest/api-reference/esri-Camera.html
然后就是我知道的使用方式合计 上代码
view.goTo({ // 看向一个可视区域 主要参数是geometry 或者 extent target: polygon.extent, // 将摄像头移动到一个点上面 center: point || [lon , lat] , // 同上 用上面的center就行了 position: point, // 这个是控制摄像头的水平方向 heading: 0, // 这个是控制摄像头的垂直朝向 tilt: 90, // 地图层级高度 一般最大是20 最小0 20的时候就已经贴着地面了几乎 zoom: 18, // 焦距这个一般都不设置 直接使用target就好了, 一定要理解的话 这个就相当于焦距 也就是说 摄像头的位置设置焦距 fov: 0 },{ // 指是否需要过度动画, 一般都会是true 默认也是true animate: true, // 动画速度系数 1就是正常速度 0.5就是一半速度 2就是一倍速度 speedFactor: 1, // 持续速度 持续5秒达到 这个配置会覆盖上面的动画系数 duration: 5000, // 允许的最大持续时间, 有时候镜头移动距离太远了 如果设置的恒定速度 就会导致时间过长, 这个配置可以解决这个问题 maxDuration: 5000, // 移动的模式 均速移动 还有很多配置 详情见api easing: "linear" })
上面应该是比较常用的一些配置了;
当然还有一些比较简单的没有动画的瞬间移动的视角方法
view.center = point; view.camera = camera; view.extent = extent
哎 首先要明白各种 js类的作用与关系 arcgis4.x 已经算是比较难的面向对象框架梁了 webgl如果没有一定的了解是很难理解的。
好啦 关于摄像头的动画介绍就到这里了