首页 > 其他分享 >react 中国地图

react 中国地图

时间:2023-12-15 14:55:39浏览次数:22  
标签:name color 地图 value label react 中国 import echarts

import React, { useEffect, useState, useRef   } from "react";
import * as echarts from 'echarts/core'
import ReactEchartsCore from 'echarts-for-react/lib/core'

import {
    GeoComponent,
    TooltipComponent,
    VisualMapComponent
  } from 'echarts/components'
  import {
    MapChart,
    BarChart,
    LinesChart,
    ScatterChart
  } from 'echarts/charts'
  import { CanvasRenderer } from 'echarts/renderers'
  
  echarts.use(
    [
      MapChart,
      BarChart,
      LinesChart,
      ScatterChart,
      GeoComponent,
      TooltipComponent,
      VisualMapComponent,
      CanvasRenderer
    ]
  );
  import { geoJson } from './mapgeoJson'

function ChinaMap() {
    const [myChart, set_myChart] = useState();
    const chartRef = useRef(null);
    useEffect(() => {
        echarts.registerMap("china", geoJson);
        const options = {
            // title: {
            //     text: "漫入漫出分布",
            //     left: "center",
            //   },
              tooltip: {
                trigger: "item",
                formatter: function (params) {
                  return `${params.name}: ${params.value || 0}`;
                },
              },
              visualMap: {  
                show: false,
                min: 800,
                max: 50000,
                text: ["High", "Low"],
                realtime: false,
                calculable: true,
                inRange: {
                  color: ["lightskyblue", "yellow", "orangered"],
                },
              },
              dataRange: {//左下角的颜色块。start:值域开始值;end:值域结束值;label:图例名称;color:自定义颜色值
                x: 'left',
                y: 'bottom',
                show: false,
                splitList: [
                    {start: 41, label: '> 41  极高', color: '#69A4FE'},
                    {start: 30, end: 40, label: '31 - 40  高', color: '#4F87FF'},
                    {start: 21, end: 30, label: '21 - 30  中', color: '#AECEFF'},
                    {start: 11, end: 20, label: '11 - 20  低', color: '#D2E4FF'},
                    {start:0, end: 10,label: '0 -10 无数据', color: '#69A4FE'}
                ]
            },
            geo: {//地理坐标系组件
                map: 'china',//注册的地图名称
                roam: false,//是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启
                zoom:1.2,//当前视角的缩放比例
                label: {//图形上的文本标签(显示地图省份)
                    normal: {
                        show: true,
                        fontSize:'10',
                        color: 'rgba(0,0,0,0.7)'
                    }
                },
                itemStyle: {
                    normal: {
                        // areaColor: '#000',
                        borderWidth: 2, //设置外层边框
                        borderColor:'#2C76E3',
                    },
                    emphasis: {
                        show: false,
                        // areaColor: '#01215c'
                    }
                },
                // itemStyle: {
                //     normal:{
                //         borderColor: 'rgba(0, 0, 0, 0.2)'//图形的描边颜
                //     },
                //     emphasis:{
                //         areaColor: '#F3B329',
                //         shadowOffsetX: 0,
                //         shadowOffsetY: 0,
                //         shadowBlur: 20,
                //         borderWidth: 0,
                //         shadowColor: 'rgba(0, 0, 0, 0.5)'
                //     }
                // }
            }, 
              series: [
                {
                  type: "map",
                  map: "china",
                  zoom: 1.2,
                  // 这是要显示的数据
                //   data: [
                //     { name: "重庆市", value: 20057.34 },
                //     { name: "新疆维吾尔自治区", value: 15477.48 },
                //     { name: "宁夏回族自治区", value: 31686.1 },
                //     { name: "西藏自治区", value: 6992.6 },
                //     { name: "内蒙古自治区", value: 44045.49 },
                //     { name: "河南省", value: 4045.49 },
                //   ],
                data:[
                    { name: '北京',  value: 1 },
                    { name: '天津',  value: 2 },
                    { name: '上海',  value: 3 },
                    { name: '重庆',  value: 4 },
                    { name: '河北',  value: 5 },
                    { name: '河南',  value: 6 },
                    { name: '云南',  value: 7 },
                    { name: '辽宁',  value: 8 },
                    { name: '黑龙江',  value: 9 },
                    { name: '湖南',  value: 10 },
                    { name: '安徽',  value: 11 },
                    { name: '山东',  value: 12 },
                    { name: '新疆',  value: 13 },
                    { name: '江苏',  value: 14 },
                    { name: '浙江',  value: 15 },
                    { name: '江西',  value: 16 },
                    { name: '湖北',  value: 17 },
                    { name: '广西',  value: 18 },
                    { name: '甘肃',  value: 19 },
                    { name: '山西',  value: 20 },
                    { name: '内蒙古',  value: 21 },
                    { name: '陕西',  value: 22 },
                    { name: '吉林',  value: 23 },
                    { name: '福建',  value: 24 },
                    { name: '贵州',  value: 25 },
                    { name: '广东',  value: 26 },
                    { name: '青海',  value: 27 },
                    { name: '西藏',  value: 28 },
                    { name: '四川',  value: 29 },
                    { name: '宁夏',  value: 30 },
                    { name: '海南',  value: 31 },
                    { name: '台湾',  value: 32 },
                    { name: '香港',  value: 33 },
                    { name: '澳门',  value: 34 }
                    ],
                    itemStyle: {
                        normal: {
                            //areaColor: '#000',
                            borderColor: '#2C76E3',
                            borderWidth: 1
                        },
                        emphasis: {
                            show: false,
                            areaColor: null
                        }
                    },
                  // // 自定义命名映射,不设置的话,label默认是使用 geoJson中的name名
                //   nameMap: {
                //     "新疆": "新疆维吾尔自治区",
                //     "西藏": "西藏自治区",
                //     "内蒙古": "内蒙古自治区",
                //   },
                },
              ],
        }
        const chartDom = echarts.init(chartRef.current);
        
        chartDom.setOption(options, true);
        set_myChart(chartDom);
        const resize = () => chartDom.resize();
        window.addEventListener('resize', resize)
        return () => {
            window.removeEventListener("resize", resize)
        }


    }, [])
    return (
        <div id="my_chart_line" ref={chartRef} style={{ height: "100%", width: "100%" }}></div>
    )
   
}

export default ChinaMap

 

标签:name,color,地图,value,label,react,中国,import,echarts
From: https://www.cnblogs.com/whlBooK/p/17903389.html

相关文章

  • react使用antd Table单元格中文字超出时省略
    实现效果使用antd中的Table,设置固定列宽,当文字超出时省略,先看实现效果:部分代码使用ellipsis进行省略,使用Tooltip(引入自antd)展示全部的内容。constTABLE_COL_WIDTH=200;constcolumns=[{title:'项目名称',dataIndex:'name',key:'......
  • 【专题】2022年中国跨境电商行业研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32044近年来,我国的跨境电子商务发展迅速,在过去五年中,其贸易额增长率达到了16.2%,已经成为稳定对外贸易的一支重要力量。阅读原文,获取专题报告合集全文,解锁文末52份跨境电商行业相关报告。一方面,随着跨境电子商务的发展,跨境电子商务的监管政策得到了......
  • react+antd 需求demo实现
    BoxSelectionComponent.tsximportReact,{useState}from'react';import{Modal,Button,Table,message}from'antd';constBoxSelectionComponent:React.FC=()=>{const[modalVisible,setModalVisible]=useState(false);......
  • React Native package.json 控制App的版本号
    原文:https://blog.csdn.net/gu1920948999/article/details/117984844package.json"version":"1.0.0",android配置android/app/build.gradleimportgroovy.json.JsonSlurper.../***获取版本号*/defgetAppVersion(){definputFile=new......
  • react-native 在ios中使用react-native-vector-icons图标
    github地址:https://github.com/oblador/react-native-vector-icons1.引入npminstall--savereact-native-vector-iconsios项目引入进入node_modules/react-native-vector-icons文件夹,将Fonts文件夹拖拽到Xcode的项目根目录下,然后在Info.plist文件中添加如下内容:<key>U......
  • 开源地图库OpenLayers的简单使用
    引言最近在学习可视化的东西,这让我想起了一些以前用过的图表库,其实我在日常做的大多是普通的需求,可视化方面应用的并不多,只是偶尔会因为个别特殊的需求,去借助一些图表库来实现图表的展示,这些普通的图表库,在使用上都大差不差,并没有什么太大的区别,但是某些特殊的图表库,比如地图库,在......
  • 【专题】2023中国新母婴人群研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34538原文出处:拓端数据部落公众号在回归母婴行业主题的背景下,我们发现了一个普遍讨论的热点问题——生育率的下降。随着主要母婴群体和市场环境的变化,母婴行业已经进入存量竞争阶段。为了应对这一挑战,母婴品牌和服务机构需要调整经营思路,以赢得消......
  • Highcharts 使用SVGRenderer方法绘制极地图​
    需求展示如何创建一个极地图、设置样式,并使用SVGRenderer方法绘制解释说明的路径和文本。分析要使用Highcharts的SVGRenderer方法绘制极地图,可以按照以下步骤操作:首先,创建一个极地图实例,并设置所需的配置项;创建一个SVGRenderer实例,使用SVGRenderer的path方法绘制路径;可以......
  • react-native中嵌套的WebView发版后未更新问题
    问题使用了react-native-webview的WebView嵌套h5页面,但是当h5发版之后,重新打开app,h5还是发版前的页面。并且这个缓存严重,每次都要清理缓存或者重装app,页面不能及时更新,影响用户体验。解决rn项目中,在h5链接后边拼接时间戳,代码如下:注意:这里缓存使用的是@react-native-async-sto......
  • React-native ios运行报错 No bundle URL present
    新建项目报错如下:需要手动生成ios下的main.jsbundle文件解决方法:1、生成main.jsbundle文件,在终端项目目录下执行:react-nativebundle--entry-fileindex.js--bundle-output./ios/main.jsbundle--platformios--assets-dest./ios--devfalse或在package.json里面添加以下执......