Cesium(二)通过Entities添加可控制模型

上一篇文章结尾说到能通过entities类来创建小车模型并实现键盘控制,这篇就来演示一下。关于上一篇文章 Cesium开发实践(一)控制小车并视角跟随 大家也可以看看。

效果图

在这里插入图片描述

区别

上一篇创建模型的方法:

let carPrimitive = scene.primitives.add(Cesium.Model.fromGltf({
   
                id:'mycar',
                url:"你的URL地址",
                modelMatrix: Cesium.Transforms.headingPitchRollToFixedFrame(position, hpRoll, Cesium.Ellipsoid.WGS84,fixedFrameTransforms),
            }))

entities创建模型

let mycar = viewer.entities.add({
   
            id:'car',
            // 位置
            position: new Cesium.CallbackProperty(getPositin, false),
            // 姿态
            orientation: new Cesium.CallbackProperty(getOrientation, false),
            model: {
   
                uri: "你的URL地址",
            }
        });

    可以看到两种方法添加的参数不一样,这个orientation是姿态,包含了Heading,Pitch,Roll。
    我选用的方法是通过计算下个点位的经纬度坐标来刷新模型的位置,相信有很多小伙伴会遇到跟我一样的问题,直接修改position,值会改变但是模型的位置并不会变化,然后我去查看了Cesium的API文档,这里想要修改position或者orientation都需要使用回调函数。方法很简单,只需要返回你需要的坐标或者方位就好了。
.

整体代码

        let radian = Cesium.Math.toRadians(2.0);
        let speed = 0.4;
        let speedVecto
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值