cesium 实战加载模型、图片,并注册鼠标事件获取元素信息

项目中是加载船舶。在zoom(地图当前缩放级别)大于13时,用加载的船舶图片作为船舶点图,标明船舶位置。当zoom小于等于13时,加载船舶模型和船舶名称,展示船舶姿态和名称信息。

一、先加载船舶

1、计算范围,可以以此条件获取船舶位置和信息和加载船舶数据

const getExtentParam=()=> {
        //计算范围
        const extent = this.globalCamera.computeViewRectangle();
        const param = {
            left: Cesium.Math.toDegrees(extent.west),
            right: Cesium.Math.toDegrees(extent.east),
            top: Cesium.Math.toDegrees(extent.north),
            bottom: Cesium.Math.toDegrees(extent.south)
        }
        return param;
    }
let extend = getExtentParam();
if (extend.bottom < 0 || extend.left < 0) return;

2、获取船舶列表,和其他需要的对象数据和函数,服务于后面船舶在地图上加载(地图初始化请前往Cesium 初始化地图-CSDN博客

//接入船舶数据放在shipArry
let shipArry=[{
cog : 128,//航迹向
lat : 38.380798,//纬度
lon : 118.232803,//经度
mmsi : 99999991,//船舶mmsi,船舶的唯一标识
names : "山东青玄15",//船舶名称
thg : 234,//船艏向
type : 1,//船舶类别
}] //这里造了一条船的假数据

// 这里还需要提前创建的地图实例 viewer= new Viewer(参数)
const viewer= new Viewer(参数)

// 获取当前层级
   const heightToZoom=(height)=> {
       let A = 40487.57;
       let B = 0.00007096758;
       let C = 91610.74;
       let D = -40467.74;
       return Math.round(D + (A - D) / (1 + Math.pow(height / C, B)));
   }
//获取层级
  const getZoom=()=> {
      let height = Math.ceil(viewer.camera.positionCartographic.height);
      let zoom
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值