问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

echarts如何实现点击地图某个区域,某个区域放大,望贴出代码。

发布网友 发布时间:2022-04-22 10:31

我来回答

2个回答

热心网友 时间:2023-11-01 13:39

网页链接这个上面写的   不知是不是你要的效果。供参考

import echarts from 'echarts/lib/echarts';

import 'echarts/lib/chart/map';

/*geojson文件很大,生产环境中,应该放在public文件夹中,并异步加载*/

import { geoJson } from './regionJsonXc';

import { sqJson } from './regionJsonXc';


let defaultBlue = '#25ade6';

let darkBlue = '#186396'; //详细地图,线条颜色暗一些


// 配置option,一定要查看echarts官方配置文档

let option = {

    // 地图配置

    geo: { 

        show: true,

        map: 'XC',

        label: {

            normal: {

                show: true,

                color: '#ccc',

                fontSize: 14,

            },

            emphasis: {

                show: true,

                color: '#fff'

            }

        },

        roam: true, // 滚轮滚动--放大或缩小

        itemStyle: {

            normal: {

                label: {

                    show: true,

                    color: '#fff',

                    fontSize: 14,

                },

                areaColor: 'rgba(24,99,150,0.05)',

                borderColor: #186396,

                shadowColor: #186396,

                shadowBlur: 10,

            },

            emphasis: {

                label: {

                    show: false,

                    color: '#fff',

                    shadowColor: '#25ade6',

                    shadowBlur: 10,

                },

                areaColor: 'rgba(24,99,150,0.5)',

            },

        },

        zoom: 1

    },

    series: []

};


let myChart = null;


class XcMap extends Component {


    state = {

        option: option,

        detail: false, // 是否使用详细地图

        curMap:geoJson,

    }


    componentDidMount() {

        this.draw(geoJson);

    }

    

    drawMap = (json) => {

        const { option } = this.state;

        let echartElement = document.getElementById('xc-map');

        myChart = echarts.init(echartElement);


        echarts.registerMap('XC', json);

        myChart.setOption(option, true);


        myChart.on('georoam', this.onDatazoom); // 缩放监听事件

    }


    

    /*

        获取zoom和center

        zoom:地图缩放值,

        center:中心位置,地图拖动之后会改变

    */

    getZoom = () => {

        if(myChart){

            let { zoom, center } = myChart.getOption().geo[0];

            return { zoom, center }

        }

        return;

    }

    

    /*

        保存缩放值和中心位置,

    */

    saveZoom = () => {

        let { zoom, center } = this.getZoom();

        const { option } = this.state;

        option.geo.zoom = zoom;

        option.geo.center = center;

       this.setState({option});

    }

    

    /**

     * 地图缩小/放大

     */

    onDatazoom = () => {


        const { detail, option } = this.state;

        const { zoom } = this.getZoom();

        const threshold = 1.7;

        

        this.saveZoom(); // 地图缩放后,将缩放值和center保存在状态中


        if (zoom >= threshold && !detail) {

            // 切换详细地图

            option.geo.itemStyle.normal.borderColor = darkBlue;

            option.geo.itemStyle.normal.shadowColor = darkBlue;

            this.setState({

                detail:true,

                option,

                curMap:sqJson

            });

            this.drawMap(sqJson);

        } else if (detail && zoom < threshold) {

            // 切换默认地图

            option.geo.itemStyle.normal.borderColor = defaultBlue;

            option.geo.itemStyle.normal.shadowColor = defaultBlue;

            this.setState({

                detail:false,

                option,

                curMap:geoJson

            });

            this.drawMap(geoJson);

        }

    }


    render() {

        const {  position } = this.state;

        return (<div>

            <div id="xc-map" className={styles.map}></div>

        </div>);

    }

}


export default XcMap;

热心网友 时间:2023-11-01 13:39

你好,请问你解决了吗,遇到同样问题求助
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 有哪些 GIS+Python 的开发经验值得分享 解酒饮料有哪些 我想用echarts实现市级地图显示,比如只显示沈阳市。然后能显示具体的区县。怎么弄? 2017最好的解酒饮料有哪些? 怎么把geojson转成svg 十大解酒饮料都有哪些品牌? echarts geojson 扩展的地图怎么填充数据 解酒饮料哪个好,大家推荐一个啊? 类似echarts还有哪些图表 如何解酒,解酒饮料喝哪个比较好啊? 如何用C#读取GeoJson文件并在地图控件中显示 哪种饮料解酒效果比较好? HTML5 Canvas元素绘制地图,已绘制出地图,并且地图可放大缩小,怎样实现鼠标移动到一幢楼时显示楼的名称 十大解酒饮料品牌哪些? Highmaps 二级地图怎么加点 使用标签引入时 geojosn地图扩展json文件怎么引入 解酒饮料哪个比较有效果啊? 404 Not Found 什么饮料解酒效果最好 如何使用自定义的geojson数据 openlayers怎样实现地图的缩放都呈现在一个固定的框中 ECharts3 怎么加载 china.js 地图 echart3.0用getJson无法显示地图 ECharts3怎么加载china.js地图? 有没有什么功能饮料可以解酒的? 有哪些解酒饮品是不错的啊? 请问一下,解酒饮料哪个好? 能解酒的饮料 喝什么解酒效果好一点 什么是解酒的最好饮料 word中英语改斜体 纯棉面料属于什么面料? 纯棉属于有机棉吗 word中如何让所有的英文字母和数字倾斜 怎样批量把单词中的一个字母变成斜体? 如何在Word中设定所有英文字母均为斜体? 纯棉衣服是天然纤维还是合成纤维? 纯棉衣服的特点是什么? 梅艳芳是因为什么原因去世的?