echarts地图api series_echarts学习(4)——地图实现

本文记录两点:1.地图实现;2.各省份地图数据。

地图实现

都开始做地图了,echarts怎么也有点了解了吧,所以前两句初始化就不多说了,不清楚的可以翻翻我以前的随笔。代码:

var china = document.getElementById("china");var chinaEchart = echarts.init(china);

然后是一句增强用户体验的代码,功能是当数据量大,不能一下子刷出来的时候,先显示一个刷新的图标,可有可无:

chinaEchart.showLoading();

然后是获取地图的json数据,这是一种geoJson数据格式,自己去写json数据还是不要想了,可以说里面都是有一个个数据组成的点线面,随笔一个小图形都上千行数据,自己做图的话都是用工具画出来的,文末会说。

1 $.get(mapUrl+'china.json',function(geoJson) {2 chinaEchart.hideLoading();3 echarts.registerMap('china', geoJson);4 var chinaOption ={5 visualMap: {6 min: 0,7 max: 150,8 text: ['High', 'Low'],9 realtime: false,10 calculable: true,11 inRange: {12 color: ['lightskyblue', 'yellow', 'orangered']13 },14 textStyle:{15 color:'lightskyblue'

16 }17 },18 series: [{19 type: 'map',20 mapType: 'china',21 data: [22 //value2代表唯一标识

23 {name: '河北', value: 50, value2: 1},24 {name: '北京', value: 100, value2: 2},25 {name: '天津', value: 80, value2: 3},26 {name: '山西', value: 20, value2: 4},27 {name: '内蒙古', value: 40, value2: 5},28 {name: '辽宁', value: 10, value2: 6},29 {name: '吉林', value: 50, value2: 7},30 {name: '黑龙江', value: 100, value2: 8},31 {name: '上海', value: 80, value2: 9},32 {name: '江苏', value: 20, value2: 10},33 {name: '浙江', value: 40, value2: 11},34 {name: '安徽', value: 10, value2: 12},35 {name: '福建', value: 50, value2: 13},36 {name: '江西', value: 100, value2: 14},37 {name: '山东', value: 80, value2: 15},38 {name: '河南', value: 20, value2: 16},39 {name: '湖北', value: 40, value2: 17},40 {name: '湖南', value: 10, value2: 18},41 {name: '广东', value: 50, value2: 19},42 {name: '广西', value: 100, value2: 20},43 {name: '海南', value: 80, value2: 21},44 {name: '四川', value: 20, value2: 22},45 {name: '贵州', value: 40, value2: 23},46 {name: '云南', value: 0, value2: 24},47 {name: '重庆', value: 0, value2: 25},48 {name: '西藏', value: 0, value2: 26},49 {name: '陕西', value: 0, value2: 27},50 {name: '甘肃', value: 0, value2: 28},51 {name: '青海', value: 0, value2: 29},52 {name: '宁夏', value: 0, value2: 30},53 {name: '新疆', value: 0, value2: 31},54 {name: '香港', value: 0, value2: 32},55 {name: '澳门', value: 0, value2: 33},56 {name: '台湾', value: 0, value2: 34}57 ],58 label: {59 normal: {60 show: true, //显示省份标签

61 textStyle: {62 color: "#eee"

63 } //省份标签字体颜色

64 },65 emphasis: { //对应的鼠标悬浮效果

66 show: true,67 textStyle: {68 color: "#515"

69 }70 }71 },72 aspectScale: 0.75,//这个参数用于 scale 地图的长宽比。最终的 aspect 的计算方式是:geoBoundingRect.width / geoBoundingRect.height * aspectScale

73 zoom: 1,//当前视角的缩放比例。

74 itemStyle: {75 normal: {76 borderWidth: .5, //区域边框宽度

77 borderColor: '#009fe8', //区域边框颜色

78 areaColor: "#18d5d1", //区域颜色

79 },80 emphasis: {//鼠标滑过地图高亮的相关设置

81 borderWidth: .5,82 borderColor: '#4b0082',83 areaColor: "#CDB30A",84 } }85 ,86 top:0,87 left:'center',88 bottom:0

89 }] }90 ;91 chinaEchart.setOption(chinaOption);})

本来不想贴这么多代码的,看着心烦,不过很多人第一次做地图,估计也不一定有个跑的通的demo,就把自己做的一个地图放上吧,最起码写的注释多一些。

需要注意的是里面第三行代码,巨坑:

echarts.registerMap('china', geoJson);

看清楚是registerMap,我也忘了是ide提示的还是看的别人的demo,不是这个方法,而是一个长得很像很像的另一个api,好像是版本问题?

稍微解释一下上面的代码:

第一行:通过ajax获取服务器端geojson数据,当然我这个是放前端模拟的一个json文件。

第二行:数据都获取成功了,关闭以前那个刷新动画。

第三行:把这个数据告诉是谁要用,这里的china要和后面series里mapType的值对应?有段时间了,忘了。

后面的代码就是常规配置,最后联系echarts对象和参数了,和普通图表一样。

各省份地图数据:

网上各种找各省份的地图数据,看的揪心。给大家一个找到各省份json数据的方式吧。

用git下载echarts在github上的demo,方法:

2.点击红框1,弹出下载的地址,然后点击红框2,复制地址。

3.下载demo,如果没有git要先下载git,git到处都有,甚至360软件管家都有。下载后在要放echarts的demo的文件夹空白处右键,选择Git Bash Here,打开命令行界面后等待出现如图所示:

Administrator@Lize-PC MINGW64 /d/mango/testgit/incubator-echarts(master)$

然后敲命令:git clone https://github.com/apache/incubator-echarts.git

注意复制黏贴地址只能用鼠标右键操作,快捷键在命令行有其他作用。

4.下载完毕后,在下载的文件中按照路径incubator-echarts\map\json\province找到各省份json数据,替换上面的china.json就能直接使用。好像还有js调用api的方式实现各省份的地图,js文件也在同目录下,这个不太清楚,因为项目还需要自己画地图,所以这种方式没尝试。

附:

1.可以根据一个图片里某个城镇或者物体的形状自己画地图:

这是个神奇的网站,可以自己画地图,右侧得到的就是直接能被echarts使用的json数据。

2.城镇地图获取:

这个好像只能获取到县级,至于更小的级别,用上面io网站比着地图自己画吧。

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

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

相关文章

android如何阻塞主线程,Android-Android如何避免阻塞主线程

Android的Handler和AsyncTask,可以避免阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的。AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单。不需要借助线程和Handler即可实现。获取…

易源数据_易源接口-互联网API入口

提交网址推广网站请加QQ群159729064昆明秀派科技有限公司在2015年成立,以领先的API数据服务及系列产品为用户提供基于大数据的API服务,帮助用户快速获得API数据,解决API数据买卖双方缺乏交易场所、技术标准、财务流程、第三方担保、运营维护、…

极光推送 android 最新,Android——快速集成极光推送-Go语言中文社区

集成极光推送1,首先肯定是注册,添加应用2,开始自动集成比手动集成简单第一步 在 build.gradledefaultConfig {multiDexEnabledtrueapplicationId rootProject.ext.cfg.applicationIdminSdkVersionrootProject.ext.cfg.minSdkVersiontargetSdk…

raft2020年更新_ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型

计算机视觉三大国际顶级会议之一的 ECCV 2020 已经召开。今年 ECCV 共收到有效投稿 5025 篇,是 ECCV 2018 论文投稿数量的二倍还要多,接收论文1361 篇,接收率为 27%,相比上届会议下降了约 5%。在接收论文中,oral论文数…

android从服务检查,android开发分享Android:你如何检查是否启用了特定的AccessibilityService...

我最后自己做了这个:public boolean isAccessibilityEnabled(){ int accessibilityEnabled 0; final String LIGHTFLOW_ACCESSIBILITY_SERVICE "com.example.test/com.example.text.ccessibilityService"; boolean accessibilityFound false; try { ac…

华为云服务怎么弄金卡会员_万科牵手华为终端云服务,共建松山湖智慧商圈

12月18日,坐落在东莞松山湖南华为旁的44000㎡的开放式商业mall——滨湖万科里正式启幕。现场华为终端云服务部还与万科南方区域商业事业部签署了战略合作协议,开启共建智慧商圈的新版图。值得一提的是,这也是华为终端云服务与万科在商业板块的…

cad2014打开文件崩溃_CAD玩的再牛,崩溃了咋办?

导读前几天,一入职新人晚上加班画完的图纸在最后一刻CAD崩溃了!好在最后在临时保存文件夹中找到了完整的图纸。这才免于通宵。CAD崩溃是我们画图中经常遇到的问题。对于CAD崩溃后的处理,相信老司机都已经游刃有余。但也有防不胜防的时候&…

android 弹窗ui,Android 弹出窗口与对话框 UI设计

左图: Android 自带的日期选择弹窗; 右图: Android 自带的时间选择弹窗.左图: Android 日历中的重复选择; 右图: Chrome 中的打印.干净简洁的布局与有趣儿又引人注目的交互让操作变得轻松而愉快, 尤其是那在时间选择器中出现的双环.同样的, 也有很多人试图在自己的应用中给他们…

staruml透明_第05组 团队项目-需求分析报告

组队后的团队项目的整体计划安排(1 2分)序号持续时间主要任务是否完成一9.28组队√二10.1-10.21制作团队选题报告√三10.22-10.27制作团队需求分析报告√四10.28-11.2团队编程准备与制作五10.28-11.11alpha冲刺准备六11.12-11.22进行alpha冲刺,并发布alpha版本七11.…

ffmpeg编译android,FFMPEG Android(2) 编译编译静态ffmpeg可执行文件

基础编译,请参考上一篇文章:http://blog.csdn.net/muwesky/article/details/55259945如果想编译静态ffmpeg可执行文件,编译脚本如下:#!/bin/bashexport TMPDIR/Users/aivensmac/work/project/ffmpeg/armbuild/tmpNDK/Users/aivens…

php5.4.41 绿色_编译安装PHP5.4.41

一、部署LAMP环境,安装顺序二、编译、安装php三、安装xcache,为php(opcode)加速四、其他一、部署LAMP环境,安装顺序编译安装部署LAMP环境,安装顺序3、编译安装php二、编译、安装php1、下载php并解压[rootlocalhost downloads]# wg…

vim反向删除_VIM之操纵缓冲区列表

引子昨天遇到了一个奇怪的问题,一条在Sublime里面看着十分正常的SQL语句,执行了也是正常的,导出的Insert语句也是看着没毛病的,但是在查询出来,传递到下游的时候,说多了一个乱码。WTF,然后就开始…

android studio管理依赖,Android Studio 中的 Gradle 依赖统一管理

在我们的实际项目开发中,通常在一个 Project 项目中会存在多个 Module 的情况,在这些 Module 中会存在一些相同的版本依赖配置,针对进行版本升级的时候需要逐个修改,显得特别麻烦,所以将依赖的配置抽取出来是一个不错的…

卸载 windows_Windows 10可能很快会自动卸载有问题的Windows更新

看起来微软已经悄悄地向Windows 10添加了一项新功能,该功能将允许操作系统自动删除导致问题的任何有问题的Windows更新。这是一个好消息,因为Windows 10最近有一些有问题的更新,其中一些阻止了Windows 10的加载。根据微软刚刚发布的一份新支持…

android 5.0 sd卡读写,如何使用为Android 5.0(Lollipop)提供的新SD卡存取API?

很多好的问题,让我们深入。:)你如何使用它?这是一个伟大的教程与KitKat中的存储访问框架交互:在Lollipop中与新的API交互非常相似。要提示用户选择目录树,您可以启动这样的意图:Intent intent new Intent(Intent.ACTI…

android /data/system/dropbox,Android导出dropbox日志

文章内容已重新排版:Android导出dropbox日志,请到该链接浏览,谢谢支持。大项目中出现anr几乎是必然事件,这里我就不再去赘述怎么分析anr日志了。但是作为分析anr重要依据的必然离不开dropbox日志。问题来了,dropbox文件…

pgsql thinkphp5_thinkphp 连接postgresql

PHP连接:php.ini中将extensionphp_pgsql.dll前面的分号去掉,然后设置extension_dir指向php文件下的ext文件夹。正常情况下这样php就可以连接postgres了,但是我的仍然出错,提示“Fatal error: Call to undefined function pg_conne…

android蓝牙串口 hc06,Android手机通过蓝牙模块HC-06连接Arduino串口输出

通过手机进行通信是可以实现很多遥控功能,虽然距离是比较短,一般是10米,但对于我这种新手做测试,比起买一个几百块的多通道遥控器成本要低很多。实验目的:用Android实现蓝牙连接通过Arduino串口输出信息这次使用的是蓝…

esrgan_港中文-商汤联合实验室:ECCV2018 PIRM-SR 超分辨率比赛冠军:ESRGAN(已开源)...

Summary:中科院和京东AI研究院提出:改进SRN人脸检测算法,目前业界最强!Author:AmusiDate:2019-02-09微信公众号:CVer原文链接:香港中文大学-商汤联合实验室:ECCV2018 PIR…

联通物联卡为什么没有网络_联通物联卡的资费和优势怎样

近年来,物联网的发展如火如荼,许多物联网卡应用不断兴起,中国移动、中国电信、中国联通都加入了物联网这一事件,中国联通物联网卡和腾讯将联网网卡升级为TUSISIM网卡,这种新的联通TUSI物联网卡也可以理解为一种新的身份…