位置: 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启动本地服务)

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

  • 企业在异地设立的办事处撤销了,人员咋办
  • 税盘是干什么用的
  • 账面金额是包含什么?
  • etc发票可以抵扣进项税吗
  • 广告设计公司挣钱吗
  • 差旅费跨年报销说明
  • 甲是乙公司依法设立的分公司
  • 股权转让需要开董事会吗
  • 墨盒应该怎么买
  • 如何让自己公司成为供应商
  • 劳务派遣用工的岗位只能在哪些工作岗位上实施
  • 营改增后税额计算公式
  • 银行承兑汇票收费标准
  • 应收账款计提坏账准备是谨慎性原则吗
  • 退休人员在企业兼职规规定
  • 在途物资可以结转成本吗
  • 房租当月无发票怎么办
  • 收外汇需要提供什么
  • 案例分析建筑业差额征税如何进行账务处理?
  • 二手房增值税税率表2023年最新
  • 商品房所有者是什么
  • 无形资产摊销表模板
  • 外贸企业支付境外佣金
  • 企业的不征税收入用于支出所形成的资产,其计算的折旧
  • 销售商品现金流量表项目
  • 兼职劳务报酬要交个税吗
  • 剑灵怎么双开2023
  • 最新双色球开奖号码
  • win11资源管理器怎么打开
  • win10怎么显示隐藏的硬盘
  • 已收到发票未认证已付款怎么做分录
  • 进口商品增值税可以抵扣吗
  • hp是什么软件
  • php从哪里开始学
  • 外商投资工业企业有哪些
  • 当月缴纳上月未缴纳社保
  • 购进设备抵扣税额
  • php生成随机6位数
  • 缴纳社保的时候工资填写多少
  • 路由配置中network怎么用
  • 个人终止投资经营的情形
  • 织梦怎么样
  • 怎么用java写代码
  • phpcms v9安装教程
  • CentOS6.9下mysql 5.7.17安装配置方法图文教程
  • 本月损益类未结转为零的一级科目6603
  • 网上更正增值税申报表
  • 研发支出资本化计入什么科目
  • 小规模卖固定资产怎么开票
  • 收到普票和专票对企业的纳税影响
  • 可以假设两种情形吗
  • 材料会计的内容
  • 工会经费教育经费计提比例
  • 收到社保局返还的各类社保款项应从哪个表单发起
  • 电子钥匙在线服务
  • 企业租用个人房屋的财税处理
  • centos7编译c语言
  • win7屏幕太亮了怎么调电脑
  • pphelper是什么文件
  • linux删错文件
  • win8应用商店无法使用
  • win8的ie浏览器
  • opengl阴影平移
  • iphone一直让登陆icloud
  • javascript中的继承
  • nodejs的socket
  • python之virtualenv的简单使用方法(必看篇)
  • Apache服务器的安全缺陷
  • python3 args
  • 弹簧设计软件手机版
  • jquery滚动条滚动到指定位置
  • insmod: init_module 'hello.ko' failed (Exec format error)
  • shell脚本编程实例
  • Python连接MySQL并使用fetchall()方法过滤特殊字符
  • 事件的分发与传播的关系
  • bootstrap基础教程
  • 国税局调动
  • 大征期 是什么
  • 四川国税网上申报大厅
  • 误餐费报销管理办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设