Cesium绘制矩形,web前端开发中心

color: Cesium.Color.WHITE,

pixelSize: 5,

heightReference: Cesium.HeightReference.CLAMP_TO_GROUND

}

});

return point;

}

//初始化为线

var drawingMode = ‘line’;

//绘制图形

function drawShape(positionData) {

var shape;

if (drawingMode === ‘rectangle’) {

//当positionData为数组时绘制最终图,如果为function则绘制动态图

var arr = typeof positionData.getValue === ‘function’ ? positionData.getValue(0) : positionData;

shape = viewer.entities.add({

name: ‘Blue translucent, rotated, and extruded ellipse with outline’,

rectangle : {

coordinates : new Cesium.CallbackProperty(function () {

var obj=Cesium.Rectangle.fromCartesianArray(arr);

//if(obj.west==obj.east){ obj.east+=0.000001};

//if(obj.south==obj.north){obj.north+=0.000001};

return obj;

}, false),

material : Cesium.Color.RED.withAlpha(0.5)

}

});

}

return shape;

}

var we=[];

var ns=[];

//鼠标左键

handler.setInputAction(function (event) {

// 我们在这里使用“viewer.scene.pickPosition”而不是“viewer.camera.pick椭球体”

// 我们在地形上移动时得到了正确的点。

var earthPosition = viewer.scene.pickPosition(event.position);

// `如果我们的鼠标不在地球上,地球位置将是不确定的

if (Cesium.defined(earthPosition)) {

if (activeShapePoints.length === 0) {

floatingPoint = createPoint(earthPosition);

activeShapePoints.push(earthPosition);

var dynamicPositions = new Cesium.CallbackProperty(function () {

return activeShapePoints;

}, false);

activeShape = drawShape(dynamicPositions);//绘制动态图

}

activeShapePoints.push(earthPosition);

createPoint(earthPosition);

console.log(earthPosition,“笛卡尔”);

//将笛卡尔坐标转换为地理坐标

var cartographic = viewer.scene.globe.ellipsoid.cartesianToCartographic(earthPosition);

//将弧度转为度的十进制度表示

var longitudeString = Cesium.Math.toDegrees(cartographic.longitude);

var latitudeString = Cesium.Math.toDegrees(cartographic.latitude);

we.push(longitudeString);

ns.push(latitudeString);

//获取相机高度

var height = Math.ceil(viewer.camera.positionCartographic.height);

console.log( ‘(’ + longitudeString + ', ’ + latitudeString + “,” + height + ‘)弧度’ );

ns.sort(function (a, b) {

return a-b;

});

we.sort(function (a, b) {

return a-b;

});

var east = we[0];

var west = we[we.length - 1];

var south = ns[0];

var north = ns[ns.length - 1];

console.log(we,east,west);console.log(ns,south,north);

}

}, Cesium.ScreenSpaceEventType.LEFT_CLICK);

//鼠标移动

handler.setInputAction(function (event) {

if (Cesium.defined(floatingPoint)) {

var newPosition = viewer.scene.pickPosition(event.endPosition);

if (Cesium.defined(newPosition)) {

floatingPoint.position.setValue(newPosition);

activeShapePoints.pop();

activeShapePoints.push(newPosition);

}

}

}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

// 重新绘制形状,使其不是动态的,然后删除动态形状

function terminateShape() {

activeShapePoints.pop();//去除最后一个动态点

if(activeShapePoints.length){

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+点击【学习资料】即可免费领取!

在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+点击【学习资料】即可免费领取!

[外链图片转存中…(img-GEuTJxLD-1712086499506)]

[外链图片转存中…(img-BG843FU5-1712086499506)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值