Echarts 是大家常用的可视化工具,相比大家用的也是得心应手,但是有时候偏偏会遇到些奇怪的想法,比如:我要在地图上插:triangular_flag_on_post:。

刚开始想到的居然不是用 Echarts ,而是百度的另一款产品 百度地图 ,但是集成之后,还需要对特定行政单位外的区域添加遮罩层,并且地图自带的路网等也不好去除,于是又回来折腾 Echarts 。

翻看官方的 配置项手册 ,良久之后才找到 renderItem 。官方的说法是: custom 系列需要开发者自己提供图形渲染的逻辑。这个渲染逻辑一般命名为 renderItem 。

找到方法就动手,开始下载 Echarts 的地图支持,但是此时 Echarts 自称部分数据不符合国家《测绘法》规定,目前暂时停止下载服务。 因为是自己玩的项目 ,所以动了一点坏心思,在 Github 上找找大家以前的存货。 如果是商业项目,大家千万不要这样做哦 。

chinaJson.features.forEach(function (item, index) {

data.forEach(function (row, num) {

if (item.properties.name === row.PROVINCE_NAME) {

provinceData.push({

"id": item.id,

"name": row.PROVINCE_NAME,

"cp": item.properties.cp,

"point": row.FLAG,

"value": 0 // value 为关键字,值必须为0

});

}

});

});

var myOption = {

geo: {

map: '中国',

zoom: 1,

},

series: [{

name: '红旗',

type: 'custom',

coordinateSystem: 'geo',

renderItem: function (params, api) {//具体实现自定义图标的方法

if (provinceData[params.dataIndex].point > 0) {

return {

type: 'image',

style: {

image: './img/flag.png',

x: api.coord([provinceData[params.dataIndex].cp[0], provinceData[params.dataIndex].cp[1]])[0],

y: api.coord([provinceData[params.dataIndex].cp[0], provinceData[params.dataIndex].cp[1]])[1],

}

}

}

},

data: provinceData,

}]

};

chinaJson 为 Echarts 地图数据,一部分数据大概长下图这样

]

data 为哪些省份需要插上:triangular_flag_on_post:的数据,我的数据长这样

[{ "PROVINCE_NAME": "北京", "FLAG": 1 }, { "PROVINCE_NAME": "上海", "FLAG": 1 }……]

provinceData 为最后得出的数据,然后在 renderItem 方法里对这个数组进行使用;

这个方法中有两个参数 params , api ,打印了以下发现能用的只有 dataIndex 这个属性,为数据数组的下标,我们在方法里判断当 point 的值大于0的时候,我们就插一个:triangular_flag_on_post:, x , y 是:triangular_flag_on_post:的坐标,这个坐标需要通过 api 里的 coord 方法进行坐标转化,参数是一个坐标数组,且会返回一个坐标数组,这个方法有误差,:triangular_flag_on_post:可能不在省会城市上,比如澳门的:triangular_flag_on_post:在海上,当然也有可能是 Echarts 的数据不准确。

最后我们看一下完成后的样子,我们在河南插上一个:triangular_flag_on_post:

echarts 地图自定义图标_Echarts3.0 地图自定义图标相关推荐

  1. Echarts地图自定义图标Symbol同时动态更改图标进行切换显示

    Echarts地图自定义图标Symbol同时动态更改图标进行切换显示 文章目录 0.前言 1.引用模块 2.界面设计 3.数据准备 4.实例地图 5.动态修改气泡图标 6.结束语 0.前言 实现的效果 ...

  2. 更换百度地图图标html,百度地图接口,自定义图标,点击切换图标

    这里实现了一个指定地区的地图,自定义图标,点击切换图标 1.[代码][JavaScript]代码 body, html,#allmap {width: 100%;height: 100%;overfl ...

  3. android百度地图单点定位_Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡...

    一.问题描述 上一次我们使用百度地图实现基本的定位功能,接下来我们继续实现搜索和定位,并使用LocationOverlay绘制定位位置,同时展示如何使用自定义图标绘制并点击时弹出泡泡 如图所示: 二. ...

  4. 自定义数据格式的矢量地图实现

    Update *原文链接:http://blog.csdn.net/tyc129/article/details/70477131* 项目已重构至2.0,启用了新的数据结构和代码结构.基本弥补了初版的 ...

  5. OpenLayers标记地图点及点击地图点显示自定义弹出框

    css代码(设置弹出框样式) /*设置弹出框样式*/.ol-popup {position: absolute;background-color: #eeeeee;-webkit-filter: dr ...

  6. php网页地图上自定义,网页嵌入百度地图和使用百度地图api自定义地图的详细步骤...

    在网页中插入百度地图 如果想在自己的网页上面加入百度地图的话,可以用百度地图的api.具体使用方法如下: 第二步:设置地图,大家可以对网站显示地图的宽高进行设置,其余选项不动. 第三步:添加标注.点击 ...

  7. 安卓高德地图-(定位+离线UI组件自定义1)

    效果图: 其中第二张图是官网默认的,后面有讲解如何自己定义界面. STEP1: 先去高德开放平台注册账号,网址:http://lbs.amap.com/ 之后再去控制台-应用管理找到自己的key,如下 ...

  8. android高德地图自定义图层,自定义图层-图层-教程-地图 JS API | 高德地图API

    自定义图层 CustomLayer 自定义图层是完全由开发者指定绘制方法的图层.该图层可以是 canvas.svg.甚至可以是 dom 组成的图层. JSAPI 能够实现自定义图层与高德地图的同步平移 ...

  9. 仿去哪网酒店的地图:POI、定位、国际地图、导航、marker及其自定义infowindow

    Android 博客之路第二弹:关于最近研究地图的总结. 前言:最近App开发酒店信息需要用到地图模块,所以就目前需要的功能研究了一下.虽然以前也有用到,但以前仅限于marker及infowindow ...

  10. 分享一个可以自定义搜索定位的地图

    分享一个可以自定义搜索定位的地图 前面的申请ak密钥步骤都是一致的,这里就不重复描述了,可以通过下面的链接看具体步骤然后复制本篇下面的代码 https://blog.csdn.net/weixin_4 ...

最新文章

  1. Zend Studio 10正式版破解(2013-02-26更新)
  2. CVPR 2021 论文大盘点-行人技术篇
  3. 以电商网站为例,谈大型分布式架构设计与优化
  4. python实现信号幅值归一化
  5. Android:ViewFlipper、幻灯片
  6. python series增加一行_关于python:将一个列表或系列作为一行添加到pandas DataFrame中?...
  7. select下拉列表
  8. pandas统计个数
  9. (便携式投影仪) FP7209补光灯调光芯片无频闪无抖动 LED升压恒流芯片最大驱动300W
  10. 稳态误差,超调与PID的关系
  11. 比特位操作之ffs和fls实现原理
  12. opencv微信二维码引擎的使用(for java)
  13. CCT Camera Tuning
  14. sklearn实现决策树,随机森林,逻辑回归,KNN,贝叶斯,SVM,以葡萄干数据集为例
  15. python颜色填充代码_python中如何给图形填充颜色
  16. Python版经纬度坐标转换
  17. 1624. 地铁地图
  18. 计算机专业学生的自我介绍英语翻译,大学生自我介绍英文版带翻译.doc
  19. 用python-OpenCV做一个魔方墙找茬程序(3D视眼训练) 版本2.0:加入倒计时功能
  20. 超高频RFID医疗血液管理系统应用

热门文章

  1. Java Attach机制简介
  2. 管理咨询公司全球前22排名
  3. 读周爱民《javascript语言精髓与编程实践》有感
  4. Python列表解析式-生成器
  5. 各种光纤接口类型介绍
  6. 树莓派如何修改WIFI账户和密码
  7. 硬件改造:新型涂鸦智能暖风机!
  8. Adaptive AutoSAR 标准介绍
  9. 服务器的四个网卡虚拟一个网卡,一种物理网卡虚拟成多个虚拟网卡的方法及系统...
  10. 期货市场亏了怎么自救?