Cesium根据中心点构建矩形

时间隔的有点久了可能写出来会有点粗糙。本来是想抽时间整理一下mapbox做过的特效,后来项目太忙了就搁置了,之前看到一个网友问根据一个点去画矩形,我就浅写一下。我也是一个新手小白,可能写的时候思路混乱或者说是走了一些弯路,欢迎指正。有需要的也可以加我QQ:469046646

我的思路

1.建立一个右手坐标系
2.确定要画多大范围的长方形,并且计算
3.添加

//主体
let center =Cesium.Cartesian3.fromDegrees(eval(lng.value),eval(lat.value), 0);
//局部坐标系   右手坐标系
//x->东
//y->上
//z->南
let L2W = Cesium.Transforms.localFrameToFixedFrameGenerator('east', 'up')(center);//中心点
let range = CreateRange(L2W);
//添加Entity
 viewer.entities.add({
  id:"ShowRange",
  name: "选取范围",
  polygon: {
    hierarchy: range,
    material: Cesium.Color.fromCssColorString("rgba(5, 39, 175, 0.3)").withAlpha(0.3),
  },
});
/
//函数
//获取长方形的四个顶点
const CreateRange = (L2W)=>{
  let LT = computedposition(L2W,-6500,0,-3500) ; 
  let LB = computedposition(L2W,-6500,0,3500) ; 
  let RT = computedposition(L2W,6500,0,-3500) ; 
  let RB = computedposition(L2W,6500,0,3500) ; 
  return [LT,LB,RB,RT]
}
//计算点位
const computedposition =(L2W,x,y,z)=>{
  let temp = Cesium.Matrix4.multiplyByPoint(L2W,Cesium.Cartesian3.fromElements(x,y,z),new Cesium.Cartesian3())
  return temp
}

大概就是这样,希望可以帮到你们

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值