zoukankan      html  css  js  c++  java
  • 如何编写适用于Echarts Map的js文件

       不知从何时开始,Echarts已经不再提供地图下载。   ~_~ 要离线使用Map,那该怎么办呢?

       经过一些摸索,我找到了一个方法,能够获取在线的json数据,把json数据调整后保存为js文件,可以为离线时使用,下面请看我是如何做的:

       一、建立js模板:  

     1 (function (root, factory) {
     2     if (typeof define === 'function' && define.amd) {
     3         // AMD. Register as an anonymous module.
     4         define(['exports', 'echarts'], factory);
     5     } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
     6         // CommonJS
     7         factory(exports, require('echarts'));
     8     } else {
     9         // Browser globals
    10         factory({}, root.echarts);
    11     }
    12 }(this, function (exports, echarts) {
    13     var log = function (msg) {
    14         if (typeof console !== 'undefined') {
    15             console && console.error && console.error(msg);
    16         }
    17     }
    18     if (!echarts) {
    19         log('ECharts is not Loaded');
    20         return;
    21     }
    22     if (!echarts.registerMap) {
    23         log('ECharts Map is not loaded')
    24         return;
    25     }
    26     echarts.registerMap(
    27     'xiamen',  //地图名称,以英文或拼音来写
    28         {"type": "FeatureCollection", "features": [
    29             {"type":"Feature","properties":{"name":"名称1"},"geometry":{"type":"MultiPolygon","coordinates":[[[ /*填写点坐标集, 坐标以方括号括起来: [x1,y1],[x2,y2]...[xn,yn]  */ ]]]}},
    30             {"type":"Feature","properties":{"name":"名称2"},"geometry":{"type":"MultiPolygon","coordinates":[[[ /*填写点坐标集, 坐标以方括号括起来: [x1,y1],[x2,y2]...[xn,yn]  */ ]]]}}            
    31         ]}
    32     );

      二、获取JSon数据:从这个网址获取数据 http://gallery.echartsjs.com/editor.html?c=xr1ohZxAax

      使用Chrome来查看后台返回的数据,以福建省厦门市为例,讲解一下

      1、打开网址,选择福建省,

      2、按F12快捷键,然后在选择“厦门市”:

      F12出来的开发工具中选择"Network",看到所有选择厦门市之后的http响应信息。

      选择第一行响应信息:

      3、点击"Preview",打开各个节点,直到找到“polyline”节点,该节点的数据即为厦门市行政区划界线的坐标点集合。

      复制该节点的信息,打开记事本或其他文本编辑工具,做下面操作

        a. 去掉数据中的引号"

        b. 然后把分号;替换为],[

        c. 给数据最前面加上[

        d. 给数据最后面加上]

        e. 查找|,然后替换为],[

        f. 模板js中"name"数据修改为对应的行政区划名称

        g. 用处理后的数据替换模板js文件中的/*填写点坐标集, 坐标以方括号括起来: [x1,y1],[x2,y2]...[xn,yn] */位置,替换好以后建议把当前行的数据拷贝出来,使用json校验器校验一下,如果通过校验了,则该行数据可以正常使用了。(推荐使用https://www.sojson.com/来校验)

      4、以此类推,把其他区域的数据也按照上面步骤处理下,每行数据之间用逗号分隔,最后一行不需要逗号,所有做好之后,js文件就可以给Echart使用了。

      5、使用数据的js文件中引用该数据js文件,例如: <script type="text/javascript" src="js/xiamen.js"></script> 

      Echarts插件引用地图,按下面代码使用数据

    name: '厦门市',  
    type: 'map',  
    mapType: 'xiamen'  //与数据js中registerMap的名称对应

       ->使用离线数据js文件加载行政区划数据完成!!!   ^-^

          

  • 相关阅读:
    【转载】不出国如何练就一口流利的英语?
    【转载】什么能力很重要——4
    【转载】什么能力很重要,但大多数人却没有?——3
    【转载】什么能力很重要,但大多数人却没有?——2
    【转载】什么能力很重要,但大多数人却没有?——1
    【转载】有哪些东西是你读研究生以后才懂的?
    JDBCTemplate基本使用
    Druid数据库连接池基本使用
    C3P0连接池
    简单理解数据库连接池(JDBC)
  • 原文地址:https://www.cnblogs.com/mhere/p/8952838.html
Copyright © 2011-2022 走看看