首页 > 其他分享 >echarts 地图 显示某一个省的地图,点击可进入市 点击空白可返回上级 - 内蒙古demo

echarts 地图 显示某一个省的地图,点击可进入市 点击空白可返回上级 - 内蒙古demo

时间:2024-08-26 14:03:36浏览次数:11  
标签:clickedCity name demo 地图 myChart value 点击 params

我这里echarts 用的 4.5.0

官网 https://echarts.apache.org/v4/examples/zh/index.html#chart-type-map

获取地图json数据工具 https://datav.aliyun.com/portal/school/atlas/area_selector

<!DOCTYPE html>
<!-- 获取地图地址 -->
<!-- https://datav.aliyun.com/portal/school/atlas/area_selector -->
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
   </head>
   <body style="height: 100%; margin: 0">
       <div id="container" style="height: 100%; width: 70%;"></div>
       <script type="text/javascript" src="./[email protected]"></script>
       <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl@1/dist/echarts-gl.min.js"></script> -->
       <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat@1/dist/ecStat.min.js"></script> -->
       <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4/dist/extension/dataTool.min.js"></script> -->
       <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4/map/js/china.js"></script> -->
       <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4/map/js/world.js"></script> -->
       <!-- <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=xfhhaTThl11qYVrqLZii6w8qE5ggnhrY&__ec_v__=20190126"></script> -->
       <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4/dist/extension/bmap.min.js"></script> -->
       <script type="text/javascript" src="./neimenggu.js"></script>
       <script type="text/javascript" src="150700_full.js"></script>
       <script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
option = null;
myChart.showLoading();

// $.get(ROOT_PATH + '/data/asset/geo/HK.json', function (geoJson) {

    const geoJson = window.neimenggu

    myChart.hideLoading();

    echarts.registerMap('neimenggu', geoJson)
    echarts.registerMap('full150700', window.full150700)

    myChart.setOption(option = {
        // title: {
        //     text: '香港18区人口密度 (2011)',
        //     subtext: '人口密度数据来自Wikipedia',
        //     sublink: 'http://zh.wikipedia.org/wiki/%E9%A6%99%E6%B8%AF%E8%A1%8C%E6%94%BF%E5%8D%80%E5%8A%83#cite_note-12'
        // },
        tooltip: {
            trigger: 'item',
            formatter: '{b}<br/>{c}'
        },
        // toolbox: {
        //     show: true,
        //     orient: 'vertical',
        //     left: 'right',
        //     top: 'center',
        //     feature: {
        //         dataView: {readOnly: false},
        //         restore: {},
        //         saveAsImage: {}
        //     }
        // },
        // visualMap: {
        //     min: 800,
        //     max: 50000,
        //     text: ['High', 'Low'],
        //     realtime: false,
        //     calculable: true,
        //     inRange: {
        //         color: ['lightskyblue', 'yellow', 'orangered']
        //     }
        // },
        series: [
            {
                name: '香港18区人口密度',
                type: 'map',
                mapType: 'neimenggu', // 自定义扩展图表类型
                label: {
                    show: true
                },
                // data: [
                //     {name: '兴安盟', value: 20057.34},
                //     {name: '湾仔', value: 15477.48},
                //     {name: '东区', value: 31686.1},
                //     {name: '南区', value: 6992.6},
                //     {name: '油尖旺', value: 44045.49},
                //     {name: '深水埗', value: 40689.64},
                //     {name: '九龙城', value: 37659.78},
                //     {name: '黄大仙', value: 45180.97},
                //     {name: '观塘', value: 55204.26},
                //     {name: '葵青', value: 21900.9},
                //     {name: '荃湾', value: 4918.26},
                //     {name: '屯门', value: 5881.84},
                //     {name: '元朗', value: 4178.01},
                //     {name: '北区', value: 2227.92},
                //     {name: '大埔', value: 2180.98},
                //     {name: '沙田', value: 9172.94},
                //     {name: '西贡', value: 3368},
                //     {name: '离岛', value: 806.98}
                // ],
                // 自定义名称映射
                // nameMap: {
                //     'Central and Western': '中西区',
                //     'Eastern': '东区',
                //     'Islands': '离岛',
                //     'Kowloon City': '九龙城',
                //     'Kwai Tsing': '葵青',
                //     'Kwun Tong': '观塘',
                //     'North': '北区',
                //     'Sai Kung': '西贡',
                //     'Sha Tin': '沙田',
                //     'Sham Shui Po': '深水埗',
                //     'Southern': '南区',
                //     'Tai Po': '大埔',
                //     'Tsuen Wan': '荃湾',
                //     'Tuen Mun': '屯门',
                //     'Wan Chai': '湾仔',
                //     'Wong Tai Sin': '黄大仙',
                //     'Yau Tsim Mong': '油尖旺',
                //     'Yuen Long': '元朗'
                // }
            }
        ]
    });
// });;

if (option && typeof option === "object") {
    myChart.setOption(option, true);


myChart.getZr().on('click', (params) => {
    // console.info('getZr click params', params.target)
  if (params.target) {
//     //画布里面点击,如果不需要空白处点击,直接将下面方法移出去即可
    myChart.off('click')
    myChart.on('click', function (params) {
        console.info('myChart on click event', params)
        var clickedCity = params.name;
        console.info('clickedCity', clickedCity)
        if (clickedCity === "呼伦贝尔市") {

            // 更新 ECharts 图表的选项,显示新的地图
            myChart.setOption({
                series: [
                    {
                        name: clickedCity,
                        type: 'map',
                        mapType: 'full150700', // 自定义扩展图表类型
                        label: {
                            show: true
                        },
                    }
                ]
            });
        }
    })
//     //单击执行的方法......
  } else {
    console.info('空白')
    myChart.setOption({
                series: [
                    {
                        name: '内蒙古',
                        type: 'map',
                        mapType: 'neimenggu', // 自定义扩展图表类型
                        label: {
                            show: true
                        },
                    }
                ]
            });
//     //画布空白区
//      //空白单击执行的方法......
  }

})

    // 为地图添加点击事件
    // myChart.on('click', function (params) {
    //     console.info('myChart on click params', params)
    //     if (params.componentType === 'series') {
    //         // 获取被点击的市的名称
    //         var clickedCity = params.name;
    //         console.info('clickedCity', clickedCity)

    //         // 加载被点击市的地图数据
    //         // 这里需要替换为实际获取市地图数据的代码
    //         // var cityMapData = getCityMapData(clickedCity);

    //         // 更新 ECharts 图表的选项,显示新的地图
    //         // myChart.setOption({
    //         //     series: [{
    //         //         mapType: clickedCity, // 设置地图类型为被点击的市
    //         //         data: cityMapData // 设置新的地图数据
    //         //     }]
    //         // });
    //     }
    // })
}

    
       </script>
   </body>
</html>

标签:clickedCity,name,demo,地图,myChart,value,点击,params
From: https://www.cnblogs.com/pengchenggang/p/18380887

相关文章

  • 腾讯地图SDK Android版开发 8 覆盖物示例2动画
    腾讯地图SDKAndroid版开发8覆盖物示例2动画动画相关的类和接口帧动画Animation动画Marker接口继承关系Animation接口类及其子接口类AnimationableIAnimationSetTencentMapComponent地图组件接口类Marker动画示例界面布局MapMarkAnimate类常量成员变量初始值创建......
  • 点击屏幕新增一个按钮/图片等控件
    在日常代码编写中,有时候会遇到一些在页面中随机点击新增一个按钮,图片等控件或文字,此时我们需要用到如下代码代码如下html:js:1.先设置图片varimg=$('');img.attr('ID','myCarousels123');//设置图片源img.attr('src','/GateMana/FindImage?GateID='+obj.gateI......
  • vue使用Echarts绘制地图
    1.安装echarts和echarts-map插件npminstallecharts--savenpminstallecharts-map--save2.在组件中引入echarts和echarts-mapimportechartsfrom'echarts'import'echarts/map/js/china'//引入中国地图3.在mounted钩子函数中初始化echarts实例mounted(){......
  • Qt+OpenCascade开发笔记(二):Qt引入occ库,搭建工程模板发布Demo
    前言  OpenCASCADE是由OpenCascadeSAS公司开发和支持的开源软件开发平台,旨在为特定领域快速开发程序而设计。它是一个面向对象的C++类库,提供了丰富的几何造型、数据交换和可视化等功能,成为许多CAD软件的核心组件。  本篇描述搭建Qt开发occ环境过程。Demo  注意......
  • 高德地图SDK Android版开发 8 覆盖物示例2动画
    高德地图SDKAndroid版开发8覆盖物示例2动画前言动画相关的类和接口帧动画MarkerOptionsAnimation动画Animation类及其子类AnimationTranslateAnimationRotateAnimationAlphaAnimationScaleAnimationAnimationSetMarker动画示例界面布局MapMarkAnimate类常量成员变......
  • 微信不能打开,点击微信后显示无法定位程序输入点CreateTOolhelp32Snapshot于动态链接库
    问题描述:解决方法:修复动态链接库KERNEL32.dll重新安装动态链接库KERNEL32.dll检查应用程序兼容性与更新,或查找应用程序的补丁以修复可能存在的与kernel32.dll相关的兼容性问题下载最新版微信,卸载微信,重启电脑,退出杀毒软件后,重新安装最新版。原因:    1、系统文件损......
  • 自动驾驶轻地图 、无地图、高精度地图
    自动驾驶中的轻地图、无地图和高精度地图各有不同的设计原则和应用特点:1.**轻地图**:通常包含基本的道路信息,如车道线和标志。设计原则是平衡地图精度与存储和计算需求。流程包括生成、更新和维护地图数据。原理是用最简化的数据提供足够的导航支持。测试时主要关注地图数据的......
  • 读取本地图片
    读取本地图片代码实现build.cs添加ImageWrapper模块,使用时注意添加相关头文件PublicDependencyModuleNames.AddRange(newstring[]{"Core","CoreUObject","Engine","InputCore","ImageWrapper"});支持图片类型pngjpgbmpicoexricns......
  • 帝国cms记录用户点击的时间怎么看不了了
    帝国CMS记录用户点击的时间如果无法查看,可能是由于以下几个方面的原因:日志文件问题:查看日志文件:帝国CMS通过日志文件记录用户的点击时间,主要涉及的日志有 access.log、error.log 和 operation.log。这些日志文件中以时间戳开头的记录即代表用户点击的时间。日志文件丢失......
  • Android车载蓝牙音乐实例(附Demo源码):实现手机播放音乐后车机应用显示音乐名称,歌手,专辑
    一、功能需求功能需求是在Android10以上设备上实现蓝牙音乐功能,细分为两个功能点:1、手机和车载设备实现蓝牙连接(本Demo文只做监听蓝牙连接状态,需手动到设置中连接蓝牙)2、连接蓝牙成功后手机播放音乐时车载设备也能播放音乐,并且在车机应用上显示音乐名称,歌手,专辑名。可在车......