echarts实现在市级行政区点击县级行政区,显示单个县级行政区地图数据

因需兼容ie,此处所有变量声明都用var。如无需支持,可另做let修改。 这里以常州市为例,我们可以去阿里云提供的地理工具去截取地图json数据DataV.GeoAtlas地理小工具系列

点击所选区域,右侧会对应显示json数据,再次点击右侧红框内的第一个按钮即可复制南通市的geoJson数据,同时按照此方法,把常州市内的所有区县的地图数据都保存为单个json文件,

html主要代码

<div class="map" id="map"></div>//此处为常州大市的图表<div class="map" id="map_ct" style="display: none"></div>//单个区县行<!--中文转拼音js-->
<script src="../static/js/pinyin4js.js"></script>

js方法:需要注意的是初始化市级地图必须要销毁click事件,同时切换到二级行政区必须要先清空图表信息,否则会有上一次的地图残影闪烁,此处点击获取二级行政区另外使用了pinyin4js.js中文转拼音的插件,点击即可免费下载使用,因不需要声调,只需要拼音来获取对应的geoJson数据,即可

 
function echarts(data) {// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('map'));var option;var convertData = function convertData(data) {var res = [];for (var i = 0; i < data.length; i++) {var geoCoord = geoCoordMap[data[i].name];if (geoCoord) {res.push({name: data[i].name,// value: geoCoord.concat(0,0).concat(data[i].value),value: geoCoord,itemStyle: {color: 'white'}});}}return res;};myChart.showLoading();$.get('../static/js/bdcDp/changzhouMap/changzhou.json', function (geoJson) {//此处地址为所保存的南通市的jsonmyChart.hideLoading();myChart.hideLoading();echarts.registerMap('changzhou', geoJson);myChart.setOption(option = {tooltip: {trigger: 'item',}},geo: {map: 'nantong',roam: false, // 不开启缩放和平移zoom: 1, // 视角缩放比例top: 50,aspectScale: 0.8,label: {normal: {show: false,fontSize: '10',color: 'rgba(0,0,0,0.7)'}},itemStyle: {normal: {areaColor: '#2282d6',borderColor: '#2282d6',borderWidth: 1,borderType: 'solid',opacity: 0.8,shadowBlur: 10,shadowColor: '#080D15',shadowOffsetX: 5,shadowOffsetY: 5},emphasis: {areaColor: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: '#fff' // 0% 处的颜色}, {offset: 1,color: '#fff' // 100% 处的颜色}],globalCoord: false // 缺省为 false}}}},series: [{type: 'map',geoIndex: 1,aspectScale: 0.8,map: 'changzhou',zoom: 1,top: 42,roam: false,nameProperty: 'name',colorBy: 'series',data:data,itemStyle: {borderColor: '#3dd4ff',borderWidth: '2',// shadowBlur: 20, //软阴影值shadowColor: '#95d3fd',shadowOffsetX: 0,// shadowOffsetY: 0,emphasis: {areaColor: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: '#2332c5' // 0% 处的颜色}, {offset: 1,color: '#2332c5' // 100% 处的颜色}],globalCoord: false // 缺省为 false},label: {show: false}}}}, {name: 'city',type: 'effectScatter',rippleEffect: {// 涟漪特效相关配置。scale: 4 // 控制涟漪大小},colorBy: 'series',coordinateSystem: 'geo',data: convertData(data),label: {formatter: '{b}',position: 'right',show: true,fontSize:18,color: '#2E9FF6'},itemStyle: {color: '#ffffff',shadowBlur: 10,shadowColor: '#333'},tooltip: {formatter: '{b0}'}}]});});// 使用刚指定的配置项和数据显示图表。// myChart.setOption(option)setTimeout(function () {myChart.resize();}, 200)window.addEventListener('resize', function () {myChart.resize();});//销毁点击事件myChart.off('click');myChart.on("click", function (params) {qxmc = params.name;color =  params.color;// 显示返回按钮$(".gobackMap").show();//此处用于返回一级市区大地图});
}// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('map_ct'));//清空图表信息 否则会有上一次地图的残影闪烁myChart.clear();var option;var geoCoordMap = {天宁区: [120.11, 31.84],新北区: [119.9, 31.92],钟楼区: [119.85, 31.81],金坛区: [119.5, 31.74],武进区: [119.91, 31.6],溧阳市: [119.39, 31.46]};//匹配地图坐标值var convertData = function convertData(data) {var res = [];for (var i = 0; i < data.length; i++) {var geoCoord = geoCoordMap[data[i].name];//取传入的区县值if ( !isNullOrEmpty(geoCoord) &&data[i].name==qxmc) {res.push({name: data[i].name,value: geoCoord,itemStyle: {color: 'white'}});}}return res;};//判断返回的区县地图 此处调用了pinyin4js.js中文转拼音的插件 qxmc是点击地图获取的区县名称 后面是格式var area = PinyinHelper.convertToPinyinString(qxmc,'', PinyinFormat.WITHOUT_TONE)// myChart.showLoading();$.get('../static/js/bdcDp/changzhouMap/' + area + '.json', function (geoJson) {// myChart.hideLoading();//展示地图echarts.registerMap('changzhou', geoJson);//地图配置myChart.setOption(option = {tooltip: {trigger: 'item',formatter: function formatter(params) {
//如无需显示该处代码可忽略,此处多为显示对应区县的某些数据var res = params.name + '<br/>';var myseries = params.data.value;if (isNotBlank(myseries)) {res += '总面积:' + myseries[0] + '万㎡' + '<br/>' + '套数:' + myseries[1] + '<br/>';} else {res += '总面积:' + 0 + '万㎡' + '<br/>' + '套数:' + 0 + '<br/>';}return res;},textStyle: {fontFamily: "Microsoft YaHei",fontSize:18}},geo: {map: 'changzhou',roam: false, // 不开启缩放和平移zoom: 1, // 视角缩放比例top: 50,aspectScale: 0.8,label: {normal: {show: false,fontSize: '10',color: 'rgba(0,0,0,0.7)'}},itemStyle: {normal: {areaColor: '#2282d6',borderColor: '#2282d6',borderWidth: 1,borderType: 'solid',opacity: 0.8,shadowBlur: 10,shadowColor: '#080D15',shadowOffsetX: 5,shadowOffsetY: 5},emphasis: {areaColor: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: '#fff' // 0% 处的颜色}, {offset: 1,color: '#fff' // 100% 处的颜色}],globalCoord: false // 缺省为 false}}}},series: [{type: 'map',geoIndex: 1,aspectScale: 0.8,map: 'changzhou',zoom: 1,top: 42,roam: false,nameProperty: 'name',colorBy: 'series',data: data,itemStyle: {borderColor: '#3dd4ff',borderWidth: '2',shadowBlur: 20,shadowColor: '#95d3fd',shadowOffsetX: 0,shadowOffsetY: 0,emphasis: {areaColor: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: '#2332c5' // 0% 处的颜色}, {offset: 1,color: '#2332c5' // 100% 处的颜色}],globalCoord: false // 缺省为 false},label: {show: false}}}}, {name: 'city',type: 'effectScatter',rippleEffect: {// 涟漪特效相关配置。scale: 4 // 控制涟漪大小},colorBy: 'series',coordinateSystem: 'geo',data: convertData(data),label: {formatter: '{b}',position: 'right',show: true,fontSize:18,color: '#1292F5'},itemStyle: {color: '#ffffff',shadowBlur: 10,shadowColor: '#333'},tooltip: {formatter: '{b0}'}}]});});setTimeout(function () {myChart.resize();}, 200)window.addEventListener('resize', function () {myChart.resize();});
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 索引相关基本概念

文章目录 前言一. B Tree 索引1. 概念2. 聚集索引/聚簇索引3. 辅助索引/二级索引4. 回表5. 联合索引/复合索引6. 覆盖索引 二. 哈希索引三. 全文索引 前言 InnoDB存储引擎支持以下几种常见索引&#xff1a;BTree索引&#xff0c;哈希索引&#xff0c;全文索引 一. B Tree 索引…

java如何实现接口之间的继承

java如果要实现接口之间的继承需要用到语句 interface 接口1 extends 接口2&#xff0c;接口3 一个接口可以继承多个接口 示例代码如下 interface Animal03{public String name"牧羊犬";public void info(); } interface Color{public void black(); } interface…

2024巴黎奥运会竟然用AI做这些?

人工智能将成为 2024 年巴黎奥运会的焦点&#xff0c;组织者于四月制定了《奥运会人工智能议程》&#xff0c;这是一个涵盖人工智能对奥运会未来影响的框架。 该议程体现了国际奥委会及其主要合作伙伴的承诺&#xff0c;确保在奥运会上使用人工智能来促进团结、提高可持续性并加…

从零到一使用 Ollama、Dify 和 Docker 构建 Llama 3.1 模型服务

本篇文章聊聊&#xff0c;如何使用 Ollama、Dify 和 Docker 来完成本地 Llama 3.1 模型服务的搭建。 如果你需要将 Ollama 官方不支持的模型运行起来&#xff0c;或者将新版本 llama.cpp 转换的模型运行起来&#xff0c;并且想更轻松的使用 Dify 构建 AI 应用&#xff0c;那么…

网络传输层——UDP与TCP

前言&#xff1a; 1.国际网络体系结构&#xff1a; OSI模型: open system interconnect 理论模型 1977 国际标准化组织 各种不同体系结构的计算机能在世界范围内互联成网。 应用层:要传输的数据信息&#xff0c;如文件传输&#xff0c;电子邮件等…

数据结构:队列(顺序存储和链式存储)

文章目录 1. 队列的概念和结构2. 队列的链式存储实现2.1 初始化2.2 判断队列是否为空2.3 入队列2.4 出队列2.5 取队头数据2.6 取队尾数据2.7 队列有效数据的个数2.8 打印队列数据2.9 销毁2.10 源代码 3. 队列的顺序存储实现(循环队列)3.1 初始化3.2 判断队列是否为空3.3 判断队…

【数据结构之C语言实现动态顺序表】

引 入: 在讲顺序表之前得先了解线性表是什么&#xff1f; 线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表&#xff0c;链表&#xff0c;栈&#xff0c;队列&#xff0c;字符串…… 线性表…

Meta 发布地表最大、最强大模型 Llama 3.1

最近这一两周看到不少互联网公司都已经开始秋招提前批了。不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球友解…

【iOS】暑期第一周——ZARA app仿写

目录 前言无限轮播图分栏控件和滚动视图自定义cell遇到的问题调整图标大小单元格附件视图设置 总结 前言 暑假学习的第一周任务是对ZARA app进行仿写&#xff0c;充分运用之前学习的Objective-C语言和UI控件。我在编写demo的过程中遇到了一些问题&#xff0c;特写该博客作为学习…

【Go】探索 Go 语言的内建函数 make

山水间歌声回荡 回荡思念的滚烫 去年的家书两行 读来又热了眼眶 云水边静沐暖阳 烟波里久违的故乡 别来无恙 你在心上 &#x1f3b5; 张靓颖/张杰《燕归巢》 在 Go 语言中&#xff0c;make 是一个非常强大的内建函数&#xff0c;用于创建和初始化特定类型…

LLM与搜索推荐

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

VScode连接服务器免密登录

1、生成 SSH 密钥对 打开终端并输入以下命令生成 SSH 密钥对&#xff1a; 直接搜索 cmd&#xff0c;然后输入&#xff1a; ssh-keygen -t rsa -b 4096 一直回车就好了 这时公钥存储在/Users/你的用户名/.ssh/id_rsa.pub文件里&#xff0c;私钥存储在/Users/你的用户名/.ss…

B Tree和B+ Tree的区别

1. 叶子节点的存储 2. 查询效率 3. 范围查询 4. 内存使用 5. 插入和删除 6. 应用场景 总结 B树&#xff08;B-Tree&#xff09;和B树&#xff08;B Tree&#xff09;都是广泛应用于数据库和文件系统中的自平衡树数据结 构&#xff0c;主要用于存储和检索大量数据。虽然它…

简单的数据结构:栈

1.栈的基本概念 1.1栈的定义 栈是一种线性表&#xff0c;只能在一端进行数据的插入或删除&#xff0c;可以用数组或链表来实现&#xff0c;这里以数组为例进行说明 栈顶 &#xff1a;数据出入的那一端&#xff0c;通常用Top表示 栈底 :相对于栈顶的另一端&#xff0c;也是固…

Unity 动画曲线(Animation Curves):创造流畅动画的关键

在Unity中&#xff0c;动画曲线&#xff08;Animation Curves&#xff09;是一种强大的工具&#xff0c;用于在动画和游戏开发中创建平滑且自然的过渡效果。通过动画曲线&#xff0c;开发者可以轻松地控制动画参数随时间的变化&#xff0c;实现复杂的动画效果。本文将探讨Unity…

gitee R包安装

要安装giteeR包&#xff0c;你可以使用以下步骤&#xff1a; 安装remotes包&#xff1a;giteeR包不是CRAN上的标准包&#xff0c;因此你需要使用remotes包从Git仓库安装。 install.packages("remotes")从Gitee安装giteeR包&#xff1a; remotes::install_git("h…

黑马头条vue2.0项目实战(一)——项目初始化

1. 图标素材&#xff08;iconfont简介&#xff09; 制作字体图标的工具有很多&#xff0c;推荐使用&#xff1a;iconfont-阿里巴巴矢量图标库。 注册账户 创建项目 可以根据项目自定义 class 前缀 上传图标到项目 生成链接&#xff0c;复制 css 代码&#xff0c;在项目中使用…

【知识梳理】Shell的变量计算

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 Shell中有很多变量的计算&#xff0c;会用到多种运算符。例如这几种&#xff1a; 1. Shell中常见的算术运算符 运算符意义&…

CF961(div2)a-c

CF961&#xff08;div2&#xff09; A. Diagonals&#xff08;贪心&#xff09; 题意&#xff1a;有n*n的棋盘&#xff0c;有k个筹码&#xff0c;将这些筹码放在棋盘上&#xff0c;对角线指ij值相同的&#xff0c;求被占对角线的最少数目 分析:除了第n条对角线只有一条&…

github-page静态网页将字符串写入github库中文本文档

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述 github-page静态…