通过goTo实现飞行路径

var view = new SceneView({
  container: viewDiv,
  map: scene,
  zoom: 10,
  center: [117.371852,36.35927]
});

points=[
  {
    x:13058023.490428746,
    y:4133579.5625787214,
    z:192.76964191813022,
    h:346.03380525721093,
    t:79.8122105218081
  },{
    x:13057885.379671251,
    y:4134165.8410214735,
    z:132.4544222317636,
    h:344.2610631473669,
    t:85.42138814060058
  },{
    x:13057776.810946576,
    y:4134499.5952105694,
    z:174.96305826120079,
    h:311.2247224011606,
    t:59.828916342620865
  }
]

view.on(click, function(e){
  goToOnline();
});

function goToOnline(){
  var i=0;
  var timer = setInterval(change, 2000);
  function change(){
    if (i< points.length){
    var cc = getCamera(i);
    view.goTo(cc);
    i++;
    console.log(cc);
  }else{
    clearInterval(timer);
    return;
    }
  }
}

function getCamera(goToFlag){
  var camera = view.camera.clone();
  camera.heading = points[goToFlag].h;
  camera.tilt = points[goToFlag].t;
  camera.position.x=points[goToFlag].x;
  camera.position.y=points[goToFlag].y;
  camera.position.z=points[goToFlag].z;
  return camera;
}

通过setInterval()实现停顿

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容