前言

openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子,这个也是学习 openlayers4 的好素材。

openlayers4 入门开发系列的地图服务基于 Geoserver 发布的,关于 Geoserver 方面操作的博客,可以参考以下几篇文章:

内容概览

1.基于 openlayers4 结合 echarts4 实现统计图
2.源代码 demo 下载

效果图如下:

  • 地图加载代码如下:
  1. /**
  2. * 地图创建初始化
  3. */
  4. var map = new ol.Map({
  5. target: 'map',
  6. layers: [
  7. new ol.layer.Tile({
  8. source: new ol.source.XYZ({
  9. url: 'http://cache1.arcgisonline.cn/arcgis/rest/services/ChinaOnline' +
  10. 'StreetPurplishBlue/MapServer/tile/{z}/{y}/{x}'
  11. })
  12. })
  13. ],
  14. view: new ol.View({
  15. center: [113.53450137499999, 34.44104525],
  16. projection: 'EPSG:4326',
  17. zoom: 6
  18. })
  19. });
  • echarts数据源设置:
  1. //饼状图数据源
  2. var option = {
  3. title : {
  4. text: '',
  5. subtext: '',
  6. x:'center'
  7. },
  8. tooltip : {
  9. trigger: 'item',
  10. formatter: "{a} <br/>{b} : {c} ({d}%)"
  11. },
  12. legend: {
  13. orient: 'vertical',
  14. left: 'left',
  15. data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'],
  16. textStyle:{
  17. color: ['#FFFFFF']
  18. }
  19. },
  20. series : [
  21. {
  22. name: '访问来源',
  23. type: 'pie',
  24. radius : '55%',
  25. center: ['50%', '60%'],
  26. data:[
  27. {value:335, name:'直接访问'},
  28. {value:310, name:'邮件营销'},
  29. {value:234, name:'联盟广告'},
  30. {value:135, name:'视频广告'},
  31. {value:1548, name:'搜索引擎'}
  32. ],
  33. itemStyle: {
  34. emphasis: {
  35. shadowBlur: 10,
  36. shadowOffsetX: 0,
  37. shadowColor: 'rgba(0, 0, 0, 0.5)'
  38. }
  39. }
  40. }
  41. ]
  42. };
  43. //柱状图数据源
  44. var option = {
  45. tooltip: {
  46. trigger: 'axis',
  47. axisPointer: {
  48. type: 'cross',
  49. crossStyle: {
  50. color: 'rgba(0, 0, 0, 0.5)'
  51. },
  52. label: {
  53. backgroundColor: 'rgba(0, 0, 0, 0.5)'
  54. }
  55. }
  56. },
  57. toolbox: {
  58. feature: {
  59. dataView: {show: false, readOnly: false},
  60. magicType: {show: false, type: ['line', 'bar']},
  61. restore: {show: false},
  62. saveAsImage: {show: false}
  63. }
  64. },
  65. legend: {
  66. data:['蒸发量','降水量','平均温度'],
  67. textStyle:{
  68. color: ['#FFFFFF']
  69. }
  70. },
  71. xAxis: [
  72. {
  73. type: 'category',
  74. data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
  75. axisPointer: {
  76. type: 'shadow'
  77. },
  78. nameTextStyle: {
  79. color: ['#FFFFFF']
  80. },
  81. axisLine:{
  82. lineStyle:{
  83. color:'#FFFFFF',
  84. width:1,//这里是为了突出显示加上的
  85. }
  86. }
  87. }
  88. ],
  89. yAxis: [
  90. {
  91. type: 'value',
  92. name: '水量',
  93. min: 0,
  94. max: 250,
  95. interval: 50,
  96. axisLabel: {
  97. formatter: '{value} ml'
  98. },
  99. nameTextStyle: {
  100. color: ['#FFFFFF']
  101. },
  102. axisLine:{
  103. lineStyle:{
  104. color:'#FFFFFF',
  105. width:1,//这里是为了突出显示加上的
  106. }
  107. }
  108. },
  109. {
  110. type: 'value',
  111. name: '温度',
  112. min: 0,
  113. max: 25,
  114. interval: 5,
  115. axisLabel: {
  116. formatter: '{value} °C'
  117. },
  118. nameTextStyle: {
  119. color: ['#FFFFFF']
  120. },
  121. axisLine:{
  122. lineStyle:{
  123. color:'#FFFFFF',
  124. width:1,//这里是为了突出显示加上的
  125. }
  126. }
  127. }
  128. ],
  129. series: [
  130. {
  131. name:'蒸发量',
  132. type:'bar',
  133. data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
  134. },
  135. {
  136. name:'降水量',
  137. type:'bar',
  138. data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
  139. },
  140. {
  141. name:'平均温度',
  142. type:'line',
  143. yAxisIndex: 1,
  144. data:[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
  145. }
  146. ]
  147. };
  • 统计图初始化加载:
  1. //饼状图加载
  2. var dom = document.getElementById("popupPie");
  3. var pos = ol.proj.fromLonLat([113.53450137499999, 34.44104525],'EPSG:4326');
  4. var popupPie = new ol.Overlay({
  5. position: pos,
  6. element: dom
  7. });
  8. map.addOverlay(popupPie);
  9. var myChart = echarts.init(dom);
  10. myChart.setOption(option);
  11.  
  12. //柱状图加载
  13. var dom = document.getElementById("popupBar");
  14. var pos = ol.proj.fromLonLat([112.5245, 28.4211],'EPSG:4326');
  15. var popupBar = new ol.Overlay({
  16. position: pos,
  17. element: dom
  18. });
  19. map.addOverlay(popupBar);
  20. var myChart = echarts.init(dom);
  21. myChart.setOption(option);

完整demo源码见小专栏文章尾部GIS之家leaflet小专栏

文章尾部提供源代码下载,对本专栏感兴趣的话,可以关注一波

openlayers4 入门开发系列结合 echarts4 实现统计图(附源码下载)的更多相关文章

  1. openlayers5-webpack 入门开发系列结合 echarts4 实现散点图(附源码下载)

    前言 openlayers5-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载 ...

  2. openlayers4 入门开发系列之热力图篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  3. openlayers4 入门开发系列之图层控制(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  4. openlayers5-webpack 入门开发系列一初探篇(附源码下载)

    前言 openlayers5-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载 ...

  5. cesium-webpack 入门开发系列一初探篇(附源码下载)

    前言 cesium-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 we ...

  6. leaflet-webpack 入门开发系列一初探篇(附源码下载)

    前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...

  7. arcgis api 3.x for js入门开发系列九热力图效果(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  8. arcgis api 3.x for js 入门开发系列八聚合效果(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  9. arcgis api 3.x for js 入门开发系列七图层控制(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

随机推荐

  1. 插入排序的代码实现(C语言)

    void insert_sort(int arr[], int len) { for (int i = 1; i < len; ++i) { if (arr[i] < arr[i - 1] ...

  2. 基于Windows下永久破解jetbrains公司的系列产品(Idea, pycharm,clion,phpstorm)

    基于Windows下永久破解jetbrains公司的系列产品(Idea, pycharm,clion,phpstorm): PS : 有能力的建议购买正版,好吧. PS:均针对其对应的2018.3.1 ...

  3. pat 1065 A+B and C (64bit)(20 分)(大数, Java)

    1065 A+B and C (64bit)(20 分) Given three integers A, B and C in [−2​63​​,2​63​​], you are supposed t ...

  4. 领扣(LeetCode)有效的括号 个人题解

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...

  5. three.js使用卷积法实现物体描边效果

    法线延展法 网上使用法线延展法实现物体描边效果的文章比较多,这里不再描述. 但是这种方法有个缺点:当两个面的法线夹角差别较大时,两个面的描边无法完美连接.如下图所示: 卷积法 这里使用另一种方法卷积法 ...

  6. keypress 和 blur 事件冲突的问题

    需求:点击需求:点击添加标签,出来input框,内容输入完成后点击enter键和blur时都可以执行提交标签的效果,提交时对内容进行判断,执行完成后清除input内的内容.如下图 问题:内容输入完成后 ...

  7. PostGIS 导入SHP文件并与ArcGIS连接

    运行环境: ArcGIS10.4 PostGreSql9.4 PostGIS2.2(需勾选空间数据库,否则需要重新安装) 实现步骤: 方法一: 1.打开pgAdminIII,数据库节点上右键,新建数据 ...

  8. 解决php使用支付宝SDK报错问题

    最近公司将一些项目转移了服务器,后来发现使用支付宝支付时发现出现错误,错误如下: 1 The each() function is deprecated. This message will be s ...

  9. H3C交换机console登录配置 v7

    一.通过con口只需输入password登陆交换机. [H3C]user-interface aux 0 设置认证方式为密码验证方式 [H3C-ui-aux0] authentication-mode ...

  10. 2019-9-17:渗透测试,基础学习,apache初识,mysql初识等笔记

    python -m SimpleHTTPServer gedit 文本编辑器 apache2 默认配置文件目录:/etc/apache2/apache2默认首页源码: /var/www/html my ...