var parentJson = null;
var parentInfo = [{
cityName: '河南',
level: 'city',
code: 410000,
},
];
getGeoJson(410000);
var timeFn = null;
// 利用高德api获取行政区边界geoJson
// adcode 行政区code 编号
function getGeoJson(adcode) {
AMapUI.loadUI(['geo/DistrictExplorer'], (DistrictExplorer) => {
var districtExplorer = new DistrictExplorer();
districtExplorer.loadAreaNode(adcode, function (error, areaNode) {
if (error) {
console.error(error);
return;
}
let Json = areaNode.getSubFeatures();
if (Json.length > 0) {
parentJson = Json;
} else if (Json.length === 0) {
Json = parentJson.filter((item) => {
if (item.properties.adcode == adcode) {
return item;
}
});
if (Json.length === 0) return;
}
proceData(Json);
});
});
} //处理数据
function proceData(Json) {
let mapData = [{
name: '郑州市',
cityCode: '410100',
value: '460',
},
{
name: '开封市',
cityCode: '410200',
value: '1372',
},
{
name: '洛阳市',
cityCode: '410300',
value: '851',
},
{
name: '平顶山市',
cityCode: '410400',
value: '720',
},
{
name: '安阳市',
cityCode: '410500',
value: '1139',
},
{
name: '鹤壁市',
cityCode: '410600',
value: '772',
},
{
name: '新乡市',
cityCode: '410700',
value: '8143',
},
{
name: '焦作市',
cityCode: '410800',
value: '723',
},
{
name: '濮阳市',
cityCode: '410900',
value: '705',
},
{
name: '许昌市',
cityCode: '411000',
value: '448',
},
{
name: '漯河市',
cityCode: '411100',
value: '1194',
},
{
name: '三门峡市',
cityCode: '411200',
value: '560',
},
{
name: '南阳市市',
cityCode: '411300',
value: '373',
},
{
name: '商丘市',
cityCode: '411400',
value: '4543',
},
{
name: '信阳市',
cityCode: '411500',
value: '716',
},
{
name: '周口市',
cityCode: '411600',
value: '521',
},
{
name: '驻马店市',
cityCode: '411700',
value: '1075',
},
{
name: '济源市',
cityCode: '419001',
value: '285',
}, ];
Json.map((item) => {
mapData.forEach((ele) => {
if (item.properties.adcode == ele.cityCode) {
ele.level = item.properties.level;
}
});
});
let mapJson = {};
//geoJson必须这种格式
mapJson.features = Json; //去渲染echarts
initEcharts(mapData, mapJson);
} function initEcharts(mapData, mapJson) {
let valArr = [];
mapData.map(function (i) {
valArr.push(i.value);
});
// 计算数据最大与最小值用于数据映射组件
let max = Math.max.apply(null, valArr);
let min = Math.min.apply(null, valArr);
//注册
echarts.registerMap('Map', mapJson); //这里加true是为了让地图重新绘制,不然如果你有筛选的时候地图会飞出去
myChart.setOption(
{
backgroundColor: 'rgb(20,28,52)',
tooltip: {
trigger: 'item',
},
visualMap: {
type: 'piecewise',
min: min,
max: max,
splitNumber: 5,
left: 35,
bottom: 50,
itemWidth: 21,
itemHeight: 8,
showLabel: false,
orient: 'horizontal',
text: ['高', '低'],
itemGap: 2,
textStyle: {
color: '#fff',
},
inRange: '',
color: [
'rgba(7, 83, 114,0.8)',
'rgba(24, 100, 141,0.9)',
'rgba(33, 122, 168,0.8)',
'rgba(28, 138, 187,0.7)',
'rgba(34, 156, 199,0.8)',
],
show: true,
}, series: [{
name: '地图',
type: 'map',
map: 'Map',
roam: true, //是否可缩放
zoom: 1, //缩放比例
aspectScale: 0.9, //长宽比0.75
data: mapData,
itemStyle: {
normal: {
show: true,
areaColor: '#2E98CA',
borderColor: 'rgb(185, 220, 227)',
borderWidth: '1',
},
},
label: {
normal: {
show: true, //显示省份标签
textStyle: {
color: 'rgb(249, 249, 249)', //省份标签字体颜色
fontSize: 12,
},
},
emphasis: {
//对应的鼠标悬浮效果
show: true,
textStyle: {
color: '#000',
},
},
},
},
],
},
true
);
// 单击下钻
} //echarts点击事件
myChart.on('click', (params) => {
clearTimeout(timeFn);
timeFn = setTimeout(function () {
// 无下级地图数据时不下钻
if (!params.value) {
alert('暂无数据');
return;
}
//如果当前是最后一级,那就直接return
if (parentInfo[parentInfo.length - 1].code == params.data.cityCode) {
return;
}
let data = params.data;
parentInfo.push({
cityName: data.name,
level: data.level,
code: data.cityCode,
});
getGeoJson(data.cityCode);
},
250);
}); // 绑定双击事件,返回上级地图
myChart.on('dblclick', function (params) {
clearTimeout(timeFn);
if (parentInfo.length < 1) {
return;
}
if (parentInfo.length === 1) {
getGeoJson(parentInfo[parentInfo.length - 1].code);
return;
}
parentInfo.pop();
getGeoJson(parentInfo[parentInfo.length - 1].code);
});

Echarts河南地图下钻的更多相关文章

  1. Echarts Map地图下钻至县级

    **准备工作:**1.首先使用vue-cli的脚手架生成vue项目. 2.然后使用npm安装echartsnpm install echarts -S 3.安装完后再mian.js中挂载到vue的实例 ...

  2. 数据视化Echarts+百度地图API实现市县区级下钻

    开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是 ...

  3. 关于echarts地图下钻。

     在去年十二月份,前端老大交代个任务,关于地图下钻.这里做了个简单的青岛地图下钻,初学echarts,做的不精,凑合看看吧. 第一步呢,先引入echarts等文件,这是最基本的.  第二步,到官网下载 ...

  4. vue 下实现 echarts 全国到省份的地图下钻

    vue 下实现 echarts 全国到省份的地图下钻 项目地址:https://github.com/cag2050/vue_echarts_v3_demo

  5. vue+echarts可视化大屏,全国地图下钻,页面自适应

    之前写过一篇关于数据大屏及地图下钻的文章 https://www.cnblogs.com/weijiutao/p/13977011.html ,但是存在诸多问题,如地图边界线及行政区划老旧,无法自适应 ...

  6. echarts map地图中绘制浙江省市区县乡镇多级联动边界下钻的最新geojson数据文件获取和更新

    目录 ECharts Map地图的显示 GeoJSON数据文件获取 在ECharts中绘制浙江省的数据 ECharts Map地图的显示 ECharts支持地理坐标显示,专门提供了一个geo组件,在s ...

  7. 关于echarts3地图下钻省市

    最近关于echarts3弄了个地图下钻,也许是因为运气不好,开始上来需要传递到的城市是成都,结果成都地图(js)加载下来总是挤到了一起,好尴尬,各方实验查找后发现原来是js文件中,成都市地图有个县市并 ...

  8. echarts Map(地图) 不同颜色区块显示

    以河南地图为例: 代码如下: <h3>天翼日必达完成率</h3> <div id="map" style="height:340px; te ...

  9. echarts的地图点击事件

    1.echarts的地图展示,有时候展示出的数据,虽然鼠标点击上去某个省份或者某个地方会有数据显示,但是点击一下地图没有任何动态效果,如何添加地图点击效果呢,这里自己也是坐下笔记,方便以后使用. 参考 ...

  10. echarts中国地图

    echarts中国地图效果图: =================== 需要引入echarts的js文件:(1.echarts.min.js:2.china.js) 下载地址: echarts.min ...

随机推荐

  1. js实现大转盘抽奖(vue举例)

    在开发项目得时候遇到这样一个需求,在移动端项目有个支付抽奖页面,大概效果图如下: 简单介绍一下需求,点击抽奖按钮转盘转动,转盘里边黄色块块是个整张背景图,里边的商品是从接口获取得,包括奖品名称和图片, ...

  2. 代码随想录 day0 博客怎么写

    前言 2.25日开始记录自己的博客生涯以及代码随想录训练营的每日内容 一.题目链接怎么找?怎么设置连接? 力扣题目链接1:力扣 二.正文怎么写? 二分查找 算法思路: 二分查找需要保证数组为有序数组同 ...

  3. HUAWEI--配置单臂路由

    HUAWEI--配置单臂路由 1.在LSW1中创建vlan10和vlan20 [LSW1]vlan batch 10 20 2.接口Eth0/0/2配置trunk,放行vlan10和20,接口Eth0 ...

  4. JavaSE——String

    String类概述 String 类代表字符串,Java 程序中的所有字符串文字(例如"abc")都被实现为此类的实例.也就是说,Java 程序中所有的双引号字符串,都是 Stri ...

  5. 图片上传 加水印 以及GDI基本画图

      上传图片并给所上传的图片添加水印 1 HttpPostedFile file = Context.Request.Files[0]; //有这个0说明一次只能上传一张 2 if (file.Con ...

  6. macos 安装多版本PHP,composer

    PHP版本切换网上有写博客用 brew-php-switcher 切换实际没生效,博客也是相互抄,看了袭浪费时间.讲一下我的思路,因为php 可以cli 和fpm 的方式.安装php 将不同版本添加命 ...

  7. div里元素横向排列 居中对齐

      <div>             <img src="//s.weituibao.com/1582958061265/mlogo.png" alt=&quo ...

  8. WampServer3.0服务器端开启ssl认证后重启Apache失败,解决办法

    最近项目中需要访问网站的 https 地址,于是进行部署,什么事情都是想起来简单,做起来难,想着一天就能搞定的事儿,结果前后折腾了三天. 现在把部署的经历记录下来,希望对朋友们有所帮助. 1.在西部数 ...

  9. 宝塔404 Not Found的解决方法-重启大法也适合服务器

    本来以为服务器不是随时重启的,浪费了好几的时间配置ssl一直无法成功,后来处理404问题重启后,发现ssl也好使了. 以下引自连接 https://www.chichisvip.com/post/37 ...

  10. C# 海康威视网络半球摄像头回调YV12取画面

    海康网络摄像头回调取画面,网口最好用千兆的网卡来做,开始用笔记本的百兆网口,不管怎么优化都是卡顿的, 后来用千兆网卡台式机的,基本就没有卡顿了,取图再加上运动检测处理,基本上十几毫秒每帧. 用回调方式 ...