作者:yangjl

前言

当发生未知的灾害时,国家迅速反应,做出相应对策并调动国家各个地区医疗资源去支援灾害地区,正是有了这份国家的后援与保证,才有我们人民生命与安全。言语往往不能表达心中更加深沉的感情,只能利用所学专业,用可视化的方式来展示国家的伟大以及医护人员一个个逆行的路线。

数据准备

(1)全国各省及湖北省各市geojson数据,来源http://datav.aliyun.com/tools/atlas;
(2)中国底图rest服务地址
https://iserver.supermap.io/iserver/services/map-china400/rest/maps/ChinaDark;
(3)全国各省对口支援城市,数据来源
https://baijiahao.baidu.com/s?id=1659102591540247360&wfr=spider&for=pc;
湖北省区域的分段专题图可以利用本次使用的mapv可视化框架进行制作或者是利用桌面进行制作,下面我简单描述下在桌面如何制作。首先导入geojson数据为面数据设置程度字段,然后制作一幅分段专题图,随后发布地图服务,这一过程较为简单,就不赘述。本次直接利用geojson数据利用mapv可视化框架进行专题图的制作

基于iClient for Openlayer +Mapv 实现可视化效果

为代码简洁实现利用CDN在线引入iClient for Openlayer以及mapv与jQuery文件,进行单网页的开发。核心步骤如下

  1. 获取geojson数据,同时定义地图对象并添加底图。
    2. 向mapv对象注册geojson湖北省市级区域数据集,以及注册进行支援地区与接受支援地区的数据集对象,为之后的数据渲染做数据铺垫
var qianxi = new mapv.DataSet([{from: '四川',count: 354551,to: '武汉市',},。。。。//未全部列举]);var dataSet1 = mapv.geojson.getDataSet(geojsontwo);
var dataSet2 = new mapv.DataSet(dataSet1.get());
  1. 湖北省市专题图的制作,分为专题图制作,以及省内市级标注的定义并展示代码如下
 var options = {gradient: {0: 'yellow',1: 'red'},globalAlpha: 1,draw: 'intensity'};map.addLayer(new ol.layer.Image({source: new ol.source.Mapv({map: map, dataSet: dataSet2, mapvOptions: options})}));//内部字体对应湖北的各个市var test_neibu = [];for(let i=0;i<geojsontwo.features.length;i++){          test_neibu.push({geometry: {type: 'Point',coordinates: JSON.parse(geojsontwo.features[i].properties.centroid),},text: geojsontwo.features[i].properties.name})};    var dataSet_neibu = new mapv.DataSet(test_neibu);var textOptions = {draw: 'text',font: '9px Arial',fillStyle: 'blue',shadowColor: 'white',shadowBlue: 20,zIndex: 11,shadowBlur: 10};map.addLayer(new ol.layer.Image({source: new ol.source.Mapv({map: map, dataSet: dataSet_neibu, mapvOptions: textOptions})}));
  1. 根据支援地区数据集迁移线,动画,以及外部支援地区标注的定义
var lineData = [];var textData = [];var timeData = [];var citys = {};for (var i = 0; i < qianxiData.length; i++) {var fromCenter = mapv.utilCityCenter.getCenterByCityName(qianxiData[i].from);var toCenter = mapv.utilCityCenter.getCenterByCityName(qianxiData[i].to);if (!fromCenter || !toCenter) {continue;}citys[qianxiData[i].from] = qianxiData[i].count;citys[qianxiData[i].to] = 100;textData.push({geometry: {type: 'Point',coordinates: [fromCenter.lng, fromCenter.lat]},text: qianxiData[i].from});var curve = mapv.utilCurve.getPoints([fromCenter, toCenter]);for (j = 0; j < curve.length; j++) {timeData.push({geometry: {type: 'Point',coordinates: curve[j]},count: 1,time: j});}lineData.push({geometry: {type: 'LineString',coordinates: curve},count: 30 * Math.random()});};var dataSet_textData = new mapv.DataSet(textData);var lineDataSet = new mapv.DataSet(lineData);var timeDataSet = new mapv.DataSet(timeData);
  1. 最后将外部标注,动画,行进路线设置样式并添加到地图中
  var textOptions = {draw: 'text',font: '15px Arial',fillStyle: 'red',shadowColor: 'white',shadowBlue: 20,zIndex: 11,shadowBlur: 2};map.addLayer(new ol.layer.Image({source: new ol.source.Mapv({map: map, dataSet: dataSet_textData, mapvOptions: textOptions})}));var timeOptions = {fillStyle: 'rgba(255, 250, 250, 0.5)',zIndex: 200,size: 2.5,animation: {type: 'time',stepsRange: {start: 0,end: 50},trails: 10,duration: 2,},draw: 'simple'};map.addLayer(new ol.layer.Image({source: new ol.source.Mapv({map: map, dataSet: timeDataSet, mapvOptions: timeOptions})}));var lineOptions = {strokeStyle: 'rgba(255, 250, 50, 0.8)',shadowColor: 'rgba(255, 250, 50, 1)',shadowBlur: 20,lineWidth: 2,zIndex: 100,draw: 'simple'};map.addLayer(new ol.layer.Image({source: new ol.source.Mapv({map: map, dataSet: lineDataSet, mapvOptions: lineOptions})}));

最后来看下展示效果

iClient for OpenLayer结合Mapv制作支援迁移路线相关推荐

  1. 如何制作风格迁移图?

    本微信图文介绍了实现风格迁移图的基本原理并在此基础上制作了效果展示图.

  2. vue加载supermap iclcent-ol (iclient for openlayer)

    tip:2022.11.18更新 发现大家对这个需求还是蛮大的,特意回来整理一下,前面格式有点乱,方便大伙快速定位自己所需要的. 说在前面:         相信能找到这里的,基本的安装下包等等操作是 ...

  3. 易语言学习流程-易语言制作辅助学习路线

    易语言有中文.开放的交流环境,比如你初学c++并遇到一个问题,去csdn提问,别人丢你一长篇英文,你看也看不懂,可能逐渐就学不下去了,但是易语言都是中文,大家三言两语能把问题说清楚,并且也有很多开源的 ...

  4. ArcGIS制图表达Representation-符号制作

    ArcGIS制图表达Representation-符号制作 by 李远祥 在ArcGIS的符号里面,存在着两种符号体系,一种是传统的标准符号体系,一种是制图表达符号体系.标准符号几乎被绝大部分ArcG ...

  5. iClient for OpenLayers之快速获取UGCV5,MVT出图参数

    作者:yangjl 前言   最近还是有很多小伙伴们,一遇到非wgs84坐标的ugcv5或mvt切图瓦片发布的地图服务,便不能对接出图了,或者是出了图但是看着地图边界比较模糊.今天我在这里讲干货,让小 ...

  6. RedHat Enterprise 5.1下OpenLDAP的配置及PAMNSS的配置

    服务器端 192.1.0.160 客户机端 192.1.0.221 一.在服务器端配置LDAP服务: 1.下载 openldap-2.4.11.tar.gz和db-4.7.25.tar.gz 2.安装 ...

  7. 地理信息系统(GIS)

    地理信息系统又称GIS(Geographic information system)系统. GIS 是一门综合性学科,已经广泛的应用在不同的领域,是用于输入.存储.查询.分析和显示地理数据的计算机系统 ...

  8. EVGA Precision—— 显卡超频神器 可用于调节风扇转速 降温

    EVGA Corporation,总部在美国,美国最大板卡公司之一,是Nvidia的核心合作伙伴. EVGA Precision X是一个可以满足用户对显卡所有需求的软件.它可以让我们调节显卡的风扇转 ...

  9. Netscape 重构软件倒闭了,但我仍坚定地站重写!

    [CSDN编者按]Stack Overflow创始人Joel Spolsky发布过一篇很有名的文章,他的观点是永远不要从零开始重写一段代码.他引用了Netscape的例子,他们花费好多年重写软件,结果 ...

最新文章

  1. golang 判断 数组 切片 是否为空
  2. 计算机视觉与深度学习 | Matlab实现单目视觉里程计基于SURF特征(代码类)
  3. LeetCode 9 回文数
  4. Android开发之Android性能优化记录
  5. POJ1733,jzoj1779-Parity game(奇偶游戏)【带权并查集,离散化】
  6. Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)
  7. Java中快速处理集合_简洁又快速地处理集合——Java8 Stream(上)
  8. 语音信号处理 | 傅里叶变换、短时傅里叶变换、小波变换、希尔伯特变换、希尔伯特黄变换
  9. latex去心领域符号
  10. 从汇编的角度理解什么是引用
  11. python运行出错时打印错误提示信息
  12. 【EasyUI篇】Combo自定义下拉框组件
  13. 算法高级(40)-基于分治算法完美解决的人类基因组计划
  14. python报错NameError: name 'NA' is not defined
  15. Cmake在Windows下安装Opencv3.2遇到的问题
  16. SQL 事务级别 与 支持 图解逻辑记录
  17. 非库安装问题而报错Expected Ptr<cv::UMat> for argument ‘src‘
  18. 〖产品思维训练白宝书 - 核心竞争力篇⑪〗- 产品经理核心竞争力解读之管理能力
  19. 微软苏菲rt能装鸿蒙,评测人员称Surface RT设计漂亮但系统存不足
  20. 2021-2028年按技术(2D、3D、面部分析)、应用程序(访问控制、安全和监控)、最终使用、地区和细分预测分列的面部识别市场规模、份额和趋势分析报告

热门文章

  1. 在html中加入文本框,在HTML中的文本框中添加多行
  2. python绘制灯笼
  3. 直方图均衡化(调节图像亮度、对比度)
  4. VSCode工具如何设置默认浏览器
  5. 最终版宝宝取名程序,java版,我家宝宝名字已经确定。 HttpURLConnection
  6. 《人生护城河》读后感
  7. 注重邮件数据信息安全 保障企业稳步发展
  8. windows操作系统的自启动项
  9. HJ-1 A/B卫星介绍
  10. outlook2003数据存储位置更改