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如果没有一定的了解是很难理解的。

  好啦 关于摄像头的动画介绍就到这里了

posted @ 2020-11-12 11:07  blurs  阅读(2127)  评论(0编辑  收藏  举报