战疫情-用地图揭秘“逆行者”

2024-02-25 09:18
文章标签 地图 揭秘 疫情 行者

本文主要是介绍战疫情-用地图揭秘“逆行者”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

疫情发生以后,全国人民几乎都听从号召,在家自我隔离,但是,却有这么一批人,被称作“逆行者”,他们就是全国各省前往湖北支援的医护人员,他们赶去疫情的中心点,不畏艰苦和困难,铸成了隔离病毒的“新的长城”。下面我们将介绍,如何在地图上揭秘各省“逆行者”数据,信息主体为全国各省支援湖北的医护人员人数,使用的平台是SuperMap iClient3D 10i for WebGL。

1.数据准备

(1)底图

使用全国行政区划图,SuperMap iDesktop范例数据下就有名为“China Province pg”的全国行政区划矢量面数据,删除不必要的属性字段后,直接将其导出成GeoJson。

以全国各省的省名制作三维标签专题图,然后生成s3m缓存,这里选择该方式来制作标签,而不是前端使用lable实体制作,是因为前两天研发说优化了文本s3m缓存和文本地图缓存在WebGL上面的显示效果,我赶紧找研发同事要了WebGL临时版本,测试发现,果然文本显示得很清晰,而以前版本文本会发虚,特别是计算机分辨率设置成125%时尤为严重。

(2)尾迹线效果数据

制作全国各省分别流向湖北的动态尾迹线效果,我们需要各省的中心点坐标,这儿我们直接用各省面数据的内点,可通过iDesktop中“类型转换”-“面转点”实现。

(3)全国各省支援湖北医护人员数量数据

该数据来源于长江日报,其中不包含解放军医疗队人数,截止日期是2月15号,本文并不对该数据真实性和准确性负责。将该数据编辑到各省点数据的属性中后,将点数据导出成GeoJson。

先来一张成果图:

在这里插入图片描述

2.功能实现

(1)创建三维球

我们隐藏掉导航控件,隐藏掉太阳,星空背景和三维球面,并将场景背景色改为蓝色,整体的行政区划面呈一个曲面,禁止信息框和隐藏选择提示,这样鼠标点击面实体时,界面上不会有任何提示,代码如下:

    var viewer = new Cesium.Viewer('cesiumContainer',{navigation:false,//隐藏导航控件infoBox:false,//禁止信息框selectionIndicator : false//隐藏选择提示});var scene = viewer.scene;viewer.scene.backgroundColor = new Cesium.Color(5/255, 27/255, 51/255, 255/255);//设置场景背景色scene.globe.show=false;//隐藏三维球体scene.sun.show=false;//隐藏太阳scene.skyBox.show=false;//隐藏天空盒

(2)打开标签专题图

先将标签专题图用iserver发布成三维服务,然后打开该服务数据,代码如下:

	var promise = scene.open("http://localhost:8090/iserver/services/3D-China_Province_pg/rest/realspace");//打开标签专题图服务Cesium.when(promise,function(layers){})//服务加载完成的回调,在回调中加载行政区划面,尾迹线和代表医护人员人数的圆圈

(3)添加行政区划面

该段代码添加到上面的回调中,代码如下:

Cesium.loadJson('China_Data.json').then(function(jsonData) { var polygonfeatures=jsonData.features;//各省面要素集合var color=new Cesium.Color(26/255, 59/255, 90/255, 255/255);//面颜色var linecolor=new Cesium.Color(54/255, 96/255, 146/255, 255/255);//面边框线颜色for(var i=0;i<polygonfeatures.length;i++){var polygonfeature=polygonfeatures[i].geometry.coordinates;//各省的面要素for(var j=0;j<polygonfeature.length;j++){if(polygonfeature.length>1)//该省矢量面由多个面对象组合而成的情况{var feature=polygonfeature[j][0];var points=[];for(var k=0;k<feature.length;k++)//读取每个面的节点信息,并存进数组{						 var x=feature[k][0];var y=feature[k][1];var z=0;points.push(x);points.push(y);points.push(z)					  }if(points[0]!=undefined)//面节点异常判断{viewer.entities.add({//构造面实体polygon : {hierarchy : Cesium.Cartesian3.fromDegreesArrayHeights(points),perPositionHeight : true,material : color,outline:true,outlineColor : linecolor}});}}else{						var feature=polygonfeature[0];var points=[];for(var k=0;k<feature.length;k++){						 var x=feature[k][0];var y=feature[k][1];var z=0;points.push(x);points.push(y);points.push(z);}if(points[0]!=undefined){viewer.entities.add({polygon : {hierarchy : Cesium.Cartesian3.fromDegreesArrayHeights(points),perPositionHeight : true,material : color,outline:true,outlineColor : linecolor}});}}}}}).otherwise(function(error) {});

(4)添加尾迹线和代表各省支援湖北医护人员数量的圆

尾迹线由各省指向湖北,医护人员数量决定圆圈的半径,代码如下:

var ellipsecolor=new Cesium.Color(50/255, 173/255, 180/255, 100/255);//圆圈颜色Cesium.loadJson('China_Doc.json').then(function(DocData) {for(var i=0;i<DocData.features.length;i++){var point=DocData.features[i].geometry.coordinates;//各省除湖北外的内点坐标var DocCount=DocData.features[i].properties.Doc;var points=[];if(DocCount<200)//为了保证圆圈在小比例尺下也能看到,最小值取200{DocCount=200;}var R=parseInt(DocCount/100)*15000;//医护人员数量确定圆圈半径points.push(point[0]);points.push(point[1]);points.push(112.866487619079);//湖北内点坐标,是固定的points.push(31.1766459770616);viewer.entities.add({ // 尾迹线polyline: {width: 5,hMax:100000,positions: Cesium.Cartesian3.fromDegreesArray(points),material: new Cesium.PolylineTrailMaterialProperty({ // 尾迹线材质color: Cesium.Color.fromCssColorString("rgba(118, 233, 241, 1.0)"),trailLength : 0.6,period : 3.0})}});viewer.entities.add({//圆圈position: Cesium.Cartesian3.fromDegrees(point[0],point[1]),ellipse : {semiMinorAxis : R,semiMajorAxis : R,height: 10000.0,material : ellipsecolor}});}})

范例代码可以在超图技术资源中心下载,http://support.supermap.com.cn/,搜索“逆行者”,再点击“超图代码”即可下载

这篇关于战疫情-用地图揭秘“逆行者”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745049

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

揭秘世界上那些同时横跨两大洲的国家

我们在《世界人口过亿的一级行政区分布》盘点全球是那些人口过亿的一级行政区。 现在我们介绍五个横跨两州的国家,并整理七大洲和这些国家的KML矢量数据分析分享给大家,如果你需要这些数据,请在文末查看领取方式。 世界上横跨两大洲的国家 地球被分为七个大洲分别是亚洲、欧洲、北美洲、南美洲、非洲、大洋洲和南极洲。 七大洲示意图 其中,南极洲是无人居住的大陆,而其他六个大洲则孕育了众多国家和

三国地理揭秘:为何北伐之路如此艰难,为何诸葛亮无法攻克陇右小城?

俗话说:天时不如地利,不是随便说说,诸葛亮六出祁山,连关中陇右的几座小城都攻不下来,行军山高路险,无法携带和建造攻城器械,是最难的,所以在汉中,无论从哪一方进攻,防守方都是一夫当关,万夫莫开;再加上千里运粮,根本不需要打,司马懿只需要坚守城池拼消耗就能不战而屈人之兵。 另一边,洛阳的虎牢关,一旦突破,洛阳就无险可守,这样的进军路线,才是顺势而为的用兵之道。 读历史的时候我们常常看到某一方势

无线领夹麦克风什么牌子好用?揭秘领夹麦克风哪个牌子音质好!

随着短视频行业的星期,围绕着直播和视频拍摄的电子数码类产品也迎来了热销不减的高增长,其中除了数码相机外,最为重要的麦克风也得到了日益增长的高需求,尤其是无线领夹麦克风,近几年可谓是异常火爆。别看小小的一对无线麦克风,它对于视频拍摄的音质起到了极为关键的作用。 不过目前市面上的麦克风品牌种类多到让人眼花缭乱,盲目挑选的话容易踩雷,那么无线领夹麦克风什么牌子好用?今天就给大家推荐几款音质好的

负债不再是障碍?银行信贷“白名单“揭秘

谈及银行信贷产品,常闻有言称存在无需考量负债与查询记录之奇品,此等说法十有八九为中介诱人上钩之辞。轻信之下,恐将步入连环陷阱。除非个人资质出类拔萃,如就职于国央企或事业单位,工龄逾年,五险一金完备,还款能力卓越,或能偶遇线下产品对查询记录稍显宽容,然亦非全然无视。宣称全然不顾者,纯属无稽之谈。 银行非慈善机构,不轻易于困境中援手,更偏爱锦上添花之举。若无坚实资质,即便求助于银行亦难获青睐。反

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

Imageview在百度地图中实现点击事件

1.首先第一步,需要声明的全局有关类的引用 private BMapManager mBMapMan; private MapView mMapView; private MapController mMapController; private RadioGroup radiogroup; private RadioButton normalview; private RadioBu

MMO地图传送

本篇由以下四个点讲解: 创建传送点 传送点配置 编辑器扩展:传送点数据生成 传送协议与实现 创建传送点 建碰撞器触发 //位置归零 建一个传送门cube放到要传送的位置(这个teleporter1是传出的区域 这是从另一张地图传入时的传送门 创建一个脚本TeleporterObject给每个传送cube都绑上脚本 通过脚本,让传送门在编辑器下面还能绘制出来

移动UI:分类列表页、筛选页的设计揭秘。

移动UI的列表页设计需要考虑用户体验和界面美观性,以下是一些建议的设计要点: 1. 列表项的展示: 列表页应该清晰地展示各个列表项,包括标题、副标题、缩略图等内容,以便用户快速浏览和识别。可以使用卡片式布局或者简洁的列表布局。 2. 搜索和筛选: 如果列表项较多,应该提供搜索和筛选功能,方便用户查找感兴趣的内容。搜索框和筛选条件可以放置在页面顶部或者底部,以便用户方便操作。