位置: IT常识 - 正文

Echarts+高德地图,获取全国省市区,区域板块地图获取并高亮显示(echarts高德地图自定义区域)

编辑:rootadmin
Echarts+高德地图,获取全国省市区,区域板块地图获取并高亮显示

推荐整理分享Echarts+高德地图,获取全国省市区,区域板块地图获取并高亮显示(echarts高德地图自定义区域),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:echarts地图参数设置,echarts+高德地图绘制3维图形,echarts 地图,echarts地图geo,echarts地图geo,echarts高德地图,echarts高德地图自定义区域,echarts高德地图,内容如对您有帮助,希望把文章链接给更多的朋友!

当用户选择省市区之后,可以看到对应区域的高亮显示。

如图:

之前用户选择的是江苏省,因此当前高亮显示的是江苏省地图板块,如果之前用户选择的是成都市,那么地图则会变成四川省的版图,高亮显示成都市,如下图:

可以继续下钻,选择区域高亮显示。

这里分享一个工具: DataV.GeoAtlas地理小工具系列

通过adcode码可以查看全国的地图板块。

注意!注意!具体操作步骤来啦!

1.创建一个存放地图的容器

<div id="charts"></div>Echarts+高德地图,获取全国省市区,区域板块地图获取并高亮显示(echarts高德地图自定义区域)

2.获取容器

myChart = echarts.init(document.getElementById("charts"));

3.运用高德地图获取adcode码,此处我用的是axios来进行获取

axios .get( `https://restapi.amap.com/v3/geocode/geo?address=${ district?city:!district && city?province:!district && !city?'中国':'中国' }&output=JSON&key=af092dccf*********cf19ade46` ) .then((res) => { adcode = res.data.geocodes[0].adcode;})

这里需要注意几个地方:

${district?city:!district && city?province:!district && !city?'中国':'中国'}

以上代码意思是:如果我拿到了区名(锦江区),那么这里就应该用市名(成都市)去生成地图,如果拿到了市名(成都市),那么这里就用省名(四川省)生成地图,以此类推,如果拿到了省名(四川省),那么就用全国(中国)去生成地图。(当然这几个参数是我从后端拿到的数据哈)

key=af092dccf1***********9ade46

这个key就是你在高德地图上申请的key,具体怎么申请可以百度一下。

adcode = res.data.geocodes[0].adcode;

然后就拿到了当前选择区域的adcode

4.通过adcode码,获取到区域地图,这里是通过上面分享的工具DataV.GeoAtlas地理小工具系列

打开之后是这样的:

这里就有请求地址,可以拿到地图,地址里面的 100000也就是中国的adcode。你可以试试输入不同的adcode码左侧会显示不同的区域地图。

具体操作:

myChart.showLoading(); axios .get( `https://geo.datav.aliyun.com/areas_v3/bound/${ adcode == 0 ? 100000 : adcode }_full.json` ) .then((geoJson) => { console.log(geoJson); //获取所有省、市 // console.log(geoJson.data.features); let allData = geoJson.data.features; let seriesData = []; allData.forEach((item) => { // console.log(item.properties.name); // console.log(item); let obj; if (item.properties.name) { if ( item.properties.name == province || item.properties.name == city || item.properties.name == district ) { // console.log(item.properties.center); setLongitudeLatitude(item.properties.center); obj = { name: item.properties.name, value: measure, selected: true, }; } else { obj = { name: item.properties.name, selected: false, }; } seriesData.push(obj); } }); myChart.hideLoading(); echarts.registerMap("ZG", geoJson.data); myChart.setOption( (option = { title: {}, tooltip: { trigger: "item", }, series: [ { type: "map", map: "ZG", silent: true, //禁用地图的hover事件 label: { show: true, }, data: seriesData, zoom: 1, //当前视角的缩放比例 roam: true, //是否开启平游或缩放 scaleLimit: { //滚轮缩放的极限控制 min: 1, max: 3, }, }, ], }) ); });

这里解释一个地方:以下部分代码是找到高亮显示的区域,然后加载series.data里面

接下来看看完整代码吧!

let myChart; let option; const renderChart = (province, city, district, measure) => { myChart = echarts.init(document.getElementById("charts")); let adcode; axios .get( `https://restapi.amap.com/v3/geocode/geo?address=${ district?city:!district && city?province:!district && !city?'中国':'中国' }&output=JSON&key=af092dc********cf19ade46` ) .then((res) => { adcode = res.data.geocodes[0].adcode; myChart.showLoading(); axios .get( `https://geo.datav.aliyun.com/areas_v3/bound/${ adcode == 0 ? 100000 : adcode }_full.json` ) .then((geoJson) => { console.log(geoJson); //获取所有省、市 let allData = geoJson.data.features; let seriesData = []; allData.forEach((item) => { // console.log(item.properties.name); // console.log(item); let obj; if (item.properties.name) { if ( item.properties.name == province || item.properties.name == city || item.properties.name == district ) { // console.log(item.properties.center); setLongitudeLatitude(item.properties.center); obj = { name: item.properties.name, value: measure, selected: true, }; } else { obj = { name: item.properties.name, selected: false, }; } seriesData.push(obj); } }); myChart.hideLoading(); echarts.registerMap("ZG", geoJson.data); myChart.setOption( (option = { title: {}, tooltip: { trigger: "item", }, series: [ { type: "map", map: "ZG", silent: true, //禁用地图的hover事件 label: { show: true, }, data: seriesData, zoom: 1, //当前视角的缩放比例 roam: true, //是否开启平游或缩放 scaleLimit: { //滚轮缩放的极限控制 min: 1, max: 3, }, }, ], }) ); }); }); option && myChart.setOption(option); };

有什么问题一起交流哦,不过回复有点不及时。哈哈哈哈

本文链接地址:https://www.jiuchutong.com/zhishi/287327.html 转载请保留说明!

上一篇:node_开启本地服务(node启动本地服务)

下一篇:睡莲怎么养及种植(睡莲怎样养)

  • 税控盘维护费会计分录怎么写
  • 小规模纳税人升级一般纳税人流程
  • t3怎么查资产负债表
  • 通行费发票抵扣要勾选认证吗
  • 企业怎样才能做好信用信息修复?
  • 进项税未抵扣完怎么结转
  • 分公司与总公司承担责任的法律规定
  • 车的违章处理
  • 房产一般纳税人每个月报哪些税
  • 车辆购置税如何计算
  • 零工受伤老板怎么赔偿
  • 车间房屋维修费属于什么科目
  • 小规模附征税减半吗亲
  • 服务费发票怎么做分录
  • 推广服务费收入如何核算成本
  • 手动添加mac
  • linux 将一个文件的内容给另一个文件
  • windowsmodulesinstaller占用cpu
  • win10重置此电脑的密码是什么
  • 基准收益率是
  • 专项基金是什么
  • 存货跌价准备借贷方表示的含义
  • php html5
  • 初级会计应收账款例题
  • php文件锁并发 性能
  • 提取企业发展基金分录比例
  • PHP:pg_client_encoding()的用法_PostgreSQL函数
  • wamp设置
  • 取得的进项税发票抵扣
  • 先开票还是先付款最新规定
  • 长期借款和短期借款的区别是什么
  • 商品销售成本怎样计算
  • 股权置换和股权转让
  • 预收账款和应收账款的转换
  • 微信支付开发步骤
  • vue框架是什么样子的
  • web自动化selenium实战项目
  • 货物及劳务包括哪些内容
  • 客服部门发生的费用
  • 一般纳税人无票收入怎么报增值税
  • react 上下文hooks内容存储到本地
  • 织梦自定义模型调用
  • 什么是国有划拔土地私房
  • 开具红字增值税专用发票信息表在哪
  • 准予从销项税额中扣除的有哪些
  • 税控盘 金税盘
  • 延期付款利息收入要交增值税吗
  • sql server 2008 r2 express 精简版与企业版的区别
  • 小企业会计准则适用于哪些企业
  • 接受捐赠的增值税计入会计利润吗
  • 工会会员缴纳的医疗互助金列工会什么科目
  • 长期股权投资稀释股权的两种
  • 无形资产专利技术属于
  • 私人出租房子发圈文案
  • 供应商来货怎么做会计分类
  • 工程施工企业外管证怎么办理
  • 以前年度的固定资产入成原材料了怎么办
  • 基本工资和什么挂钩
  • 企业清算的会计处理
  • window怎么样
  • 巧用 Windows 系统控制台删除病毒文件
  • win7系统怎么备份文件
  • uca1
  • mac怎么管理字体大小
  • win7 64位系统只有搜狗浏览器可以打开网页其他浏览器打不开的故障原因及解决方法
  • windows关机音乐
  • win 7电脑音箱没有声音
  • 贴吧热门评论
  • [置顶]bilinovel
  • jquery滚动到底部
  • python嵌套列表生成
  • cocos2dx-3.2+lua 常用函数
  • sockaddr_in和sockaddr
  • node.js使用教程
  • python爬虫介绍
  • 化妆品的消费税率为
  • 出口退税注销怎么办理
  • 消费税是由消费者完全负担的税种
  • 税务网上申报怎样操作
  • 河南省纪检委网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设