1. 程式人生 > 實用技巧 >arcgis 4.x 入門學習五 (視角定位 view.goTo )

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如果沒有一定的瞭解是很難理解的。

  好啦 關於攝像頭的動畫介紹就到這裡了