Echarts 用GeoJson数据绘制地图

Echarts 通过加载 DataV.GeoAtlas工具 获取的GeoJson地图数据,绘制地图。

一、先获取地图数据:数据格式分别选择包含子区域和不包含子区域各下载一份。

二、Echarts利用数据绘制

1.加载两份数据

      //获取两份数据
      const SX = await this.getWorldJson('shanXi')
      const SXNoSubRegion = await this.getWorldJson('shanXiNoSubRegion')

      //加载数据
      this.$echarts.registerMap('山西省', SX)
      this.$echarts.registerMap('山西省无子区域', SXNoSubRegion)

2. echarts绘制地图,options中内容(分别配置无子区域和包含子区域的样式)。配置时{map:''},其中map属性对应使用 registerMap 注册的地图名称。

      const option = {
        series: [
          {
            type: 'map',
            map: '山西省无子区域',
            silent: true, // 图形是否不响应和触发鼠标事
            roam: false, // 鼠标缩放
            zoom: 1.01,
            itemStyle: {
              borderColor: '#14edfc',
              borderWidth: 5,
              areaColor: 'rgba(0,0,0,0)'
            }
          },
          {
            type: 'map',
            map: '山西省',
            roam: false,
            label: {
              show: true,
              color: '#0484a5'
            },
            itemStyle: {
              borderColor: '#3b89ac',
              borderWidth: 3,
              areaColor: 'rgba(9, 40, 77, 0.5)'
            }
          }
        ]
      }

 无子区域、包含子区域分别展示效果:

 实现的叠加效果

 无子区域的模块配置 缩放比例属性 zoom:1.01(默认1),这样叠加时两者不会完全重叠,无子区域地图稍大,地图轮廓有包裹的伪3D效果。

由于地图是两者叠加的,进行鼠标缩放时,只会放大其中一者,叠加的两份无法同步缩放,导致错乱。所以配置属性禁止鼠标缩放,并禁止无子区域地图响应和触发鼠标事件(只需包含子区域的地图响应)。

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 ECharts 导入 GeoJSON 文件数据绘制自定义地图的代码示例: 1. 首先,需要引入 ECharts 库和地图组件: ```html <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.1/echarts.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.1/echarts-gl.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.1/extension/dataTool.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.1/extension/bmap.min.js"></script> ``` 2. 然后,需要定义一个容器用于渲染地图: ```html <div id="map" style="width: 100%; height: 600px;"></div> ``` 3. 接着,使用 ECharts 的 `geoJson` 组件导入 GeoJSON 数据: ```js // 导入 GeoJSON 数据 $.getJSON('custom-map.geojson', function (geoJson) { echarts.registerMap('customMap', geoJson, { // 自定义地图的配置项 }); // 渲染地图 var chart = echarts.init(document.getElementById('map')); chart.setOption({ // 其他配置项 series: [ { type: 'map', map: 'customMap', // 使用自定义地图 // 其他配置项 } ] }); }); ``` 4. 最后,在 `getJSON` 方法中指定 GeoJSON 文件的路径,即可导入并使用自定义地图。 注意:在代码中使用了 jQuery 库的 `getJSON` 方法来加载 GeoJSON 数据,需要确保已经引入了 jQuery 库。如果不想使用 jQuery 库,也可以使用原生的 `XMLHttpRequest` 对象来加载 GeoJSON 数据。 以上就是使用 ECharts 导入 GeoJSON 文件数据绘制自定义地图的代码示例。可以根据实际情况修改自定义地图的配置信息和渲染方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值