当前位置: 首页 > news >正文

建企业网站建设注意问题牟平网站制作公司

建企业网站建设注意问题,牟平网站制作公司,2021世界500强企业排名,wordpress默认编辑器起因#xff1a;看了cesium官网卫星通信示例发现只有cmzl版本的#xff0c;决定自己动手写一个。欢迎大家一起探讨#xff0c;评论留言。 效果 全部代码在最后 起步 寻找卫星轨迹数据#xff0c;在网站space-track上找的#xff0c;自己注册账号QQ邮箱即可。 卫星轨道类… 起因看了cesium官网卫星通信示例发现只有cmzl版本的决定自己动手写一个。欢迎大家一起探讨评论留言。 效果 全部代码在最后 起步 寻找卫星轨迹数据在网站space-track上找的自己注册账号QQ邮箱即可。 卫星轨道类型 轨道高度 卫星用途LEO (低地球轨道) 500-2000km 对地观测、测地、通信、导航等MEO (中地球轨道) 2000-35786km 导航GEO(地球静止轨道) 35786km 通信 导航、气象观测等SSO (太阳同步轨道) 6000km 观测等IGSO(倾斜地球同步轨道) 35786km 导航 点击TLE就可以得到卫星的两个轨道数据 当然这个数据需要相对应的插件satellite.js转换成我们熟悉的经纬高 拔下来的数据存入json文件中: 最后构造卫星轨迹对象 import {twoline2satrec, gstime, eciToGeodetic,PositionAndVelocity, propagate, EciVec3,degreesLong } from satellite.js;fetch(data/points.json).then(res res.json()).then(data {for (const key in data) {if (Object.prototype.hasOwnProperty.call(data, key)) {const element data[key];const satrec twoline2satrec(element.data[0], element.data[1]);const positionAndVelocity: PositionAndVelocity propagate(satrec, time);const positionEci positionAndVelocity.position as EciVec3number;obj[key] {country: element.country,times: [],positions: []};let lon, lat, alt;//一年365天 一天为间隔for (let index min; index nowTime; index index 86400000) {const gmst gstime(new Date(index));const positionGd eciToGeodetic(positionEci, gmst)lon positionGd.longitude,lat positionGd.latitude,alt positionGd.height;obj[key].times.push(index)obj[key].positions.push([degreesLong(lon), degreesLong(lat), alt])}}}})加载卫星和轨迹线 //用数据集方便管理 const satellites new Cesium.CustomDataSource(satellite); const polylines new Cesium.CustomDataSource(statelliteLine); function computeCirclularFlight(arr: Obj, hasLine: boolean true) {for (const key in arr) {if (Object.prototype.hasOwnProperty.call(arr, key)) {const element arr[key];const property new Cesium.SampledPositionProperty();const length element.positions.lengthconst positions: number[] []let p, tfor (let index 0; index length; index) {p element.positions[index]t element.times[index]property.addSample(Cesium.JulianDate.addHours(Cesium.JulianDate.fromDate(new Date(t)), 8, new Cesium.JulianDate()), Cesium.Cartesian3.fromDegrees(p[0], p[1], p[2]));positions.push(...element.positions[index])}satellites.entities.add({id: key,model: {uri: element.country US ? models/satellite/satellite1/Satellite.gltf: element.country PRC ? models/satellite/satellite2/10477_Satellite_v1_L3.gltf : models/satellite/satellite3/satellite.gltf,minimumPixelSize: 32},position: property,});if (hasLine)polylines.entities.add({id: key,polyline: {width: 1,material: Cesium.Color.BLUE.withAlpha(.5),positions: Cesium.Cartesian3.fromDegreesArrayHeights(positions)}})}}viewer.dataSources.add(satellites);viewer.dataSources.add(polylines); }加载卫星和轨迹的效果 加载地面雷达 const radars new Cesium.CustomDataSource(radar); const radarpoints: {id: string;lon: number;lat: number;radius: number }[] [{ id: radar1, lon: 104, lat: 34, radius: 300000 },{ id: radar2, lon: -100, lat: 55, radius: 300000 },{ id: radar3, lon: 109.70841, lat: 19.365791, radius: 300000 },]//添加雷达radarpoints.forEach(i {createRadar(i.id, i.lon, i.lat, i.radius)})function createRadar(id: string, lon: number, lat: number, radius: number) {radars.entities.add({id: id,model: {uri: models/antenna_07.glb,minimumPixelSize: 32,},position: Cesium.Cartesian3.fromDegrees(lon, lat),})viewer.dataSources.add(radars)new LCesiumApi.RadarPrimitive({radius: radius,stackPartitions: 10,slicePartitions: 10,stackDegrees: {x: 0,y: 90,},sliceDegrees: {x: 0,y: 360,},color: Cesium.Color.GREEN.withAlpha(0.2),lineColor: Cesium.Color.RED,scanColor: Cesium.Color.YELLOW.withAlpha(0.2),scanLineColor: Cesium.Color.RED,scene: viewer.scene,center: Cesium.Cartesian3.fromDegrees(lon, lat),scanSpeed: 5000,show: true,scan: true,}); }关于雷达效果在我之前文章里面有 卫星与地面雷达通信 暂时只做了m(雷达)-n(卫星)m*n;没有做卫星之间的通信判断不过原理都是一样的.网上搜索了一下通信距离一般是3,580km计算此时卫星距雷达的距离,其实就是计算带高度的经纬度之间的距离 Cartesian3.distance(point1: Cartesian3, point2: Cartesian3)当卫星和地面卫星通信时创建连线离开设置为隐藏。 function computeRange() {satellites.entities.values.forEach(i {radars.entities.values.forEach(j {const po1 i.position?.getValue(viewer.clock.currentTime)const po2 j.position?.getValue(viewer.clock.currentTime)if (po1 po2) {const len LCesiumApi.Tool.getDistanceFromCartesian3(po1, po2)if (len communicationRange) {if (showFlyObject[${i.id}-${j.id}]) {showFlyObject[${i.id}-${j.id}].show trueshowFlyObject[${i.id}-${j.id}].po1 LCesiumApi.Tramsform.degreesFromCartesian(po1)showFlyObject[${i.id}-${j.id}].po2 LCesiumApi.Tramsform.degreesFromCartesian(po2)}else {showFlyObject[${i.id}-${j.id}] {entity: null,show: true,po1: LCesiumApi.Tramsform.degreesFromCartesian(po1),po2: LCesiumApi.Tramsform.degreesFromCartesian(po2)}}} else {if (showFlyObject[${i.id}-${j.id}]) showFlyObject[${i.id}-${j.id}].show false}}})})setLine() } function setLine() {for (const key in showFlyObject) {if (Object.prototype.hasOwnProperty.call(showFlyObject, key)) {const element showFlyObject[key];if (element.entity null) element.entity createFlyLine(key)element.entity.show element.show}} } function createFlyLine(id: string) {var material new PolylineTrailLinkMaterialProperty({color: Cesium.Color.fromCssColorString(#7ffeff),duration: 3000,});const line Connection.entities.add({id: id,polyline: {positions: new Cesium.CallbackProperty(() {return Cesium.Cartesian3.fromDegreesArrayHeights([showFlyObject[id].po1.longitude,showFlyObject[id].po1.latitude,showFlyObject[id].po1.height,showFlyObject[id].po2.longitude,showFlyObject[id].po2.latitude,showFlyObject[id].po2.height,])}, false),width: 8,material}})return line }完整代码 templateMap onViewerLoadedonViewerLoaded :optionsoptions / /template script langts setup import Map from /components/Cesium/lib/Map.vue; import * as Cesium from cesium; import { message } from ant-design-vue import {twoline2satrec, gstime, eciToGeodetic,PositionAndVelocity, propagate, EciVec3,degreesLong } from satellite.js; import LCesiumApi from lib/main; //ts-ignore import { PolylineTrailLinkMaterialProperty } from ./PolylineTrailMaterialProperty.js const options {imageryProvider: new Cesium.ArcGisMapServerImageryProvider({url: https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer}), } let viewer: Cesium.Viewer let start: Cesium.JulianDate let stop: Cesium.JulianDate let handler: Cesium.ScreenSpaceEventHandler; const communicationRange 3580000; const time new Date() let max time.getTime() let year 31622400000; let min max - year; type Obj {[index: string]: {country: string;times: number[];positions: [[number, number, number]] | number[][]} } const showFlyObject: {[index: string]: any } {} let obj: Obj {} const radarpoints: {id: string;lon: number;lat: number;radius: number }[] [{ id: radar1, lon: 104, lat: 34, radius: 300000 },{ id: radar2, lon: -100, lat: 55, radius: 300000 },{ id: radar3, lon: 109.70841, lat: 19.365791, radius: 300000 },] const onViewerLoaded (Viewer: Cesium.Viewer) {viewer Viewerhandler new Cesium.ScreenSpaceEventHandler(viewer.canvas);//设置时间轴setTimeline()//读取卫星分布两行数据const nowTime time.getTime()fetch(data/points.json).then(res res.json()).then(data {for (const key in data) {if (Object.prototype.hasOwnProperty.call(data, key)) {const element data[key];const satrec twoline2satrec(element.data[0], element.data[1]);const positionAndVelocity: PositionAndVelocity propagate(satrec, time);const positionEci positionAndVelocity.position as EciVec3number;obj[key] {country: element.country,times: [],positions: []};let lon, lat, alt;//一年365天 一天为间隔for (let index min; index nowTime; index index 86400000) {const gmst gstime(new Date(index));const positionGd eciToGeodetic(positionEci, gmst)lon positionGd.longitude,lat positionGd.latitude,alt positionGd.height;obj[key].times.push(index)obj[key].positions.push([degreesLong(lon), degreesLong(lat), alt])}}}computeCirclularFlight(obj)})//添加点击事件addPick()//添加雷达radarpoints.forEach(i {createRadar(i.id, i.lon, i.lat, i.radius)})//添加过境扫描; (viewer as any).frameUpdate.addEventListener((delta: any) {computeRange()}); } function setTimeline() {start Cesium.JulianDate.fromDate(new Date(min)); // 获取当前时间 这不是国内的时间start Cesium.JulianDate.addHours(start, 8, new Cesium.JulianDate()); // 添加八小时得到我们东八区的北京时间stop Cesium.JulianDate.fromDate(new Date(max)); // 设置一个结束时间意思是360秒之后时间结束viewer.clock.startTime start.clone(); // 给cesium时间轴设置开始的时间也就是上边的东八区时间viewer.clock.stopTime stop.clone(); // 设置cesium时间轴设置结束的时间viewer.clock.currentTime start.clone(); // 设置cesium时间轴设置当前的时间viewer.clock.clockRange Cesium.ClockRange.LOOP_STOP; // 时间结束了再继续重复来一遍//时间变化来控制速度 // 时间速率数字越大时间过的越快viewer.clock.multiplier 1;//给时间线设置边界viewer.timeline.zoomTo(start, stop); } const satellites new Cesium.CustomDataSource(satellite); const polylines new Cesium.CustomDataSource(statelliteLine); const radars new Cesium.CustomDataSource(radar); const Connection new Cesium.CustomDataSource(connection); function computeCirclularFlight(arr: Obj, hasLine: boolean true) {for (const key in arr) {if (Object.prototype.hasOwnProperty.call(arr, key)) {const element arr[key];const property new Cesium.SampledPositionProperty();const length element.positions.lengthconst positions: number[] []let p, tfor (let index 0; index length; index) {p element.positions[index]t element.times[index]property.addSample(Cesium.JulianDate.addHours(Cesium.JulianDate.fromDate(new Date(t)), 8, new Cesium.JulianDate()), Cesium.Cartesian3.fromDegrees(p[0], p[1], p[2]));positions.push(...element.positions[index])}satellites.entities.add({id: key,model: {uri: element.country US ? models/satellite/satellite1/Satellite.gltf: element.country PRC ? models/satellite/satellite2/10477_Satellite_v1_L3.gltf : models/satellite/satellite3/satellite.gltf,minimumPixelSize: 32},position: property,});if (hasLine)polylines.entities.add({id: key,polyline: {width: 1,material: Cesium.Color.BLUE.withAlpha(.5),positions: Cesium.Cartesian3.fromDegreesArrayHeights(positions)}})}}viewer.dataSources.add(satellites);viewer.dataSources.add(polylines);viewer.dataSources.add(Connection) } const addPick () {handler.setInputAction((movement: any) {const pickedObject viewer.scene.pick(movement.position);if (Cesium.defined(pickedObject)) {message.info(pickedObject.id.id)}}, Cesium.ScreenSpaceEventType.LEFT_CLICK) } function createRadar(id: string, lon: number, lat: number, radius: number) {radars.entities.add({id: id,model: {uri: models/antenna_07.glb,minimumPixelSize: 32,},position: Cesium.Cartesian3.fromDegrees(lon, lat),})viewer.dataSources.add(radars)new LCesiumApi.RadarPrimitive({radius: radius,stackPartitions: 10,slicePartitions: 10,stackDegrees: {x: 0,y: 90,},sliceDegrees: {x: 0,y: 360,},color: Cesium.Color.GREEN.withAlpha(0.2),lineColor: Cesium.Color.RED,scanColor: Cesium.Color.YELLOW.withAlpha(0.2),scanLineColor: Cesium.Color.RED,scene: viewer.scene,center: Cesium.Cartesian3.fromDegrees(lon, lat),scanSpeed: 5000,show: true,scan: true,}); } function computeRange() {satellites.entities.values.forEach(i {radars.entities.values.forEach(j {const po1 i.position?.getValue(viewer.clock.currentTime)const po2 j.position?.getValue(viewer.clock.currentTime)if (po1 po2) {const len LCesiumApi.Tool.getDistanceFromCartesian3(po1, po2)if (len communicationRange) {if (showFlyObject[${i.id}-${j.id}]) {showFlyObject[${i.id}-${j.id}].show trueshowFlyObject[${i.id}-${j.id}].po1 LCesiumApi.Tramsform.degreesFromCartesian(po1)showFlyObject[${i.id}-${j.id}].po2 LCesiumApi.Tramsform.degreesFromCartesian(po2)}else {showFlyObject[${i.id}-${j.id}] {entity: null,show: true,po1: LCesiumApi.Tramsform.degreesFromCartesian(po1),po2: LCesiumApi.Tramsform.degreesFromCartesian(po2)}}} else {if (showFlyObject[${i.id}-${j.id}]) showFlyObject[${i.id}-${j.id}].show false}}})})setLine() } function setLine() {for (const key in showFlyObject) {if (Object.prototype.hasOwnProperty.call(showFlyObject, key)) {const element showFlyObject[key];if (element.entity null) element.entity createFlyLine(key)element.entity.show element.show}} } function createFlyLine(id: string) {var material new PolylineTrailLinkMaterialProperty({color: Cesium.Color.fromCssColorString(#7ffeff),duration: 3000,});const line Connection.entities.add({id: id,polyline: {positions: new Cesium.CallbackProperty(() {return Cesium.Cartesian3.fromDegreesArrayHeights([showFlyObject[id].po1.longitude,showFlyObject[id].po1.latitude,showFlyObject[id].po1.height,showFlyObject[id].po2.longitude,showFlyObject[id].po2.latitude,showFlyObject[id].po2.height,])}, false),width: 8,material}})return line } /script
文章转载自:
http://www.morning.mtgkq.cn.gov.cn.mtgkq.cn
http://www.morning.hqrr.cn.gov.cn.hqrr.cn
http://www.morning.cczrw.cn.gov.cn.cczrw.cn
http://www.morning.qpmwb.cn.gov.cn.qpmwb.cn
http://www.morning.ffmx.cn.gov.cn.ffmx.cn
http://www.morning.smsjx.cn.gov.cn.smsjx.cn
http://www.morning.lffgs.cn.gov.cn.lffgs.cn
http://www.morning.dbfp.cn.gov.cn.dbfp.cn
http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn
http://www.morning.tfgkq.cn.gov.cn.tfgkq.cn
http://www.morning.qmmfr.cn.gov.cn.qmmfr.cn
http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn
http://www.morning.ylpl.cn.gov.cn.ylpl.cn
http://www.morning.wtnyg.cn.gov.cn.wtnyg.cn
http://www.morning.qptbn.cn.gov.cn.qptbn.cn
http://www.morning.ummpdl.cn.gov.cn.ummpdl.cn
http://www.morning.wjndl.cn.gov.cn.wjndl.cn
http://www.morning.cfocyfa.cn.gov.cn.cfocyfa.cn
http://www.morning.jphxt.cn.gov.cn.jphxt.cn
http://www.morning.grpfj.cn.gov.cn.grpfj.cn
http://www.morning.kgqww.cn.gov.cn.kgqww.cn
http://www.morning.nqmdc.cn.gov.cn.nqmdc.cn
http://www.morning.trzmb.cn.gov.cn.trzmb.cn
http://www.morning.bljcb.cn.gov.cn.bljcb.cn
http://www.morning.ymqfx.cn.gov.cn.ymqfx.cn
http://www.morning.chbcj.cn.gov.cn.chbcj.cn
http://www.morning.ksjmt.cn.gov.cn.ksjmt.cn
http://www.morning.yqgny.cn.gov.cn.yqgny.cn
http://www.morning.sgpny.cn.gov.cn.sgpny.cn
http://www.morning.yslfn.cn.gov.cn.yslfn.cn
http://www.morning.rtkgc.cn.gov.cn.rtkgc.cn
http://www.morning.ychrn.cn.gov.cn.ychrn.cn
http://www.morning.stxg.cn.gov.cn.stxg.cn
http://www.morning.tkztx.cn.gov.cn.tkztx.cn
http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn
http://www.morning.ghjln.cn.gov.cn.ghjln.cn
http://www.morning.xwlmr.cn.gov.cn.xwlmr.cn
http://www.morning.hkng.cn.gov.cn.hkng.cn
http://www.morning.mlntx.cn.gov.cn.mlntx.cn
http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com
http://www.morning.dnvhfh.cn.gov.cn.dnvhfh.cn
http://www.morning.bccls.cn.gov.cn.bccls.cn
http://www.morning.jlboyuan.cn.gov.cn.jlboyuan.cn
http://www.morning.sftpg.cn.gov.cn.sftpg.cn
http://www.morning.dfojgo.cn.gov.cn.dfojgo.cn
http://www.morning.jqwpw.cn.gov.cn.jqwpw.cn
http://www.morning.rwbh.cn.gov.cn.rwbh.cn
http://www.morning.mmjqk.cn.gov.cn.mmjqk.cn
http://www.morning.rgpy.cn.gov.cn.rgpy.cn
http://www.morning.rmfh.cn.gov.cn.rmfh.cn
http://www.morning.plqhb.cn.gov.cn.plqhb.cn
http://www.morning.ktfbl.cn.gov.cn.ktfbl.cn
http://www.morning.xtqr.cn.gov.cn.xtqr.cn
http://www.morning.redhoma.com.gov.cn.redhoma.com
http://www.morning.qnzk.cn.gov.cn.qnzk.cn
http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn
http://www.morning.mhlkc.cn.gov.cn.mhlkc.cn
http://www.morning.mhmdx.cn.gov.cn.mhmdx.cn
http://www.morning.rqkck.cn.gov.cn.rqkck.cn
http://www.morning.smry.cn.gov.cn.smry.cn
http://www.morning.rwmft.cn.gov.cn.rwmft.cn
http://www.morning.qyfqx.cn.gov.cn.qyfqx.cn
http://www.morning.trmpj.cn.gov.cn.trmpj.cn
http://www.morning.rrjzp.cn.gov.cn.rrjzp.cn
http://www.morning.zrpys.cn.gov.cn.zrpys.cn
http://www.morning.yqpzl.cn.gov.cn.yqpzl.cn
http://www.morning.rgqnt.cn.gov.cn.rgqnt.cn
http://www.morning.kjmws.cn.gov.cn.kjmws.cn
http://www.morning.qrgfw.cn.gov.cn.qrgfw.cn
http://www.morning.zkzjm.cn.gov.cn.zkzjm.cn
http://www.morning.sqxr.cn.gov.cn.sqxr.cn
http://www.morning.lffgs.cn.gov.cn.lffgs.cn
http://www.morning.ylmxs.cn.gov.cn.ylmxs.cn
http://www.morning.lftpl.cn.gov.cn.lftpl.cn
http://www.morning.kwdfn.cn.gov.cn.kwdfn.cn
http://www.morning.jwxmn.cn.gov.cn.jwxmn.cn
http://www.morning.qpqcq.cn.gov.cn.qpqcq.cn
http://www.morning.fswml.cn.gov.cn.fswml.cn
http://www.morning.fdrch.cn.gov.cn.fdrch.cn
http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn
http://www.tj-hxxt.cn/news/249780.html

相关文章:

  • 手机版网站模板 免费优化平台建设公司
  • 六盘水市住房和城乡建设局网站wordpress怎么做相册
  • 网站数据分析报表义乌代加工手工活官网
  • 专做海报设计的网站招商项目发布平台
  • p2p商城网站建设文字图片在线制作生成
  • 企业网站建设找哪家seo营销策划
  • php做购物网站详情页的代码网站建设内部需求调查表
  • 济南网站建设_美叶网络网站开发毕业答辩演讲稿范文
  • 成都网站建设 赢展wordpress如何去除页眉部分
  • 支付宝 网站接口网站推广产品
  • 广西电商网站个人网站-个人主页作业
  • 焦作网站建设策划wordpress视频适应播放器
  • 完全免费的网站源码ui培训
  • 环保设备网站怎么做枣庄建网站
  • 江苏建设工程招标网官方网站手机端网站做app开发
  • 自己做免费网站的视频专业的seo搜索引擎优化培训
  • 做网站盈利方式泉州公司网站模板建站
  • 房地产网站建设解决方案梦幻西游网页版礼包码
  • 郑州外贸网站建设公司企业网络营销策划案
  • 上海做网站cnsosu网站内部结构
  • 做网站服务器是什么新公司做网站怎么做
  • 汕头高端网站建设前端电商网站开发周期
  • 什么事网站建设开发定制软件
  • 兄弟网络(西安网站建设制作公司)网站建设步和客户沟通
  • 视频网站怎么做可以播放电视剧百度官网建设
  • 做不锈钢的网站有哪些海南在线人才
  • 2016网站优化漳州网站建设哪家最权威
  • 织梦 网站名称资源软件库
  • 网站建设调查通知中煜建设有限公司网站
  • 视频网站dedecms怎样在建立公司网站