terrainProvider: Cesium.createWorldTerrain()
});
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
//双击鼠标左键清除默认事件
viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
//绘制图形
function drawShape(positionData) {
var shape;
//当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=[];
var east;
var west;
var south;
var north;
//鼠标左键
handler.setInputAction(function (event) {
// 我们在这里使用“viewer.scene.pickPosition”而不是“viewer.camera.pick椭球体”
// 我们在地形上移动时得到了正确的点。
//var earthPosition = viewer.scene.pickPosition(event.position);//三维绘制
var earthPosition = viewer.camera.pickEllipsoid(event.position, viewer.scene.globe.ellipsoid); //返回在椭球上面的点的坐标 2维绘制
// `如果我们的鼠标不在地球上,地球位置将是不确定的
if (Cesium.defined(earthPosition)) {
if (activeShapePoints.length === 0) {
activeShapePoints.push(earthPosition);
var dynamicPositions = new Cesium.CallbackProperty(function () {
return activeShapePoints;
}, false);
activeShape = drawShape(dynamicPositions);//绘制动态图
}
activeShapePoints.push(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;
});
east =we[we.length - 1] ;
west =we[0] ;
south = ns[0];
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();//去除最后一个动态点
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)
![](https://i-blog.csdnimg.cn/blog_migrate/0fc2c4898433001d833afc199189ff4b.jpeg)
最后
基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。
什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽
了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。
什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽