arcgis 4.x 入門學習五 (視角定位 view.goTo )
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如果沒有一定的瞭解是很難理解的。
好啦 關於攝像頭的動畫介紹就到這裡了