echarts绘画中国地图

1.获取地图的json数据
可以在datav这里获取JSON API
http://datav.aliyun.com/portal/school/atlas/area_selector#&lat=30.332329214580188&lng=106.72278672066881&zoom=3.5

2.这里用到的是react,其他框架同理,主要是其中的option

import * as echarts from 'echarts';
import dataJson from './data.json';
import { useEffect } from 'react';

export default () => {
  let data: any = [
    '河北',
    '山东',
    '辽宁',
    '黑龙江',
    '甘肃',
    '吉林',
    '青海',
    '河南',
    '江苏',
    '湖北',
    '湖南',
    '浙江',
    '江西',
    '广西',
    '广东',
    '云南',
    '福建',
    '台湾',
    '海南',
    '山西',
    '四川',
    '陕西',
    '贵州',
    '安徽',
    '重庆',
    '宁夏',
    '内蒙古',
    '新疆',
    '西藏',
    '南海诸岛',
    '北京',
    '天津',
  ];

  data = data.map((v: string, i: number) => {
    return {
      name: v,
      selected: i === 0,
      value: i,
    };
  });

  const option = {
    tooltip: {
      show: false,
    },
    background: 'red',
    geo: {
      // 地理坐标系组件,支持在地理坐标系上绘制散点图、线图
      map: 'china',
      aspectScale: 0.75,
      zoom: 1.1,
    },
    series: [
      {
        type: 'map',
        label: {
          normal: {
            show: true,
            textStyle: {
              color: '#1DE9B6',
            },
          },
          emphasis: {
            textStyle: {
              color: 'rgb(183, 185, 14)',
            },
          },
        },
        zoom: 1.1,
        map: 'china',
      },
      // 地图的线路图动画效果相关设置
      {
        type: 'lines',
        zlevel: 2,
        effect: {
          show: true,
          period: 4,
          trailLength: 0.6,
          symbol: 'arrow',
          symbolSize: 7,
        },
        lineStyle: {
          normal: {
            color: '#1DE9B6',
            width: 1,
            opacity: 0.1,
            curveness: 0.3,
          },
        },
        data: [],
      },
    ],
  };

  useEffect(() => {
    const chartDom = document.getElementById('main') as HTMLElement;
    let uploadDataUrl = dataJson;
    echarts.registerMap('china', uploadDataUrl as any);
    const myChart = echarts.init(chartDom);
    option && myChart.setOption(option);
  }, []);

  return <div style={{ height: 500 }} id="main" />;
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值