【云图】如何制作中国贪官落马图?
摘要:之前的文章都是利用云索引来完成数据的分类显示的,今天教大家用云检索来制作有趣的地图。云检索的优点是,在结果展现的时候,可以让数据呈现出更棒的自定义效果。比如,结果面板的点击效果,markder的鼠标效果,信息窗口的自定义展示等。并且,教程中第一次使用了时间轴这样的插件!根据时间进度来播放整个地图标注加载的过程。
----------------------------------------------------------------
效果提前看一眼:http://zhaoziang.com/amap/tanguan.html
第一步、制作一张云图
登录云图管理台 http://yuntu.amap.com/datamanager/index.html
新建一张地图,这时后台会自动生成一个key。
准备原始数据,并将数据上传至云图。
新建地图:http://yuntu.amap.com/datamanager/index.html
导入数据
附贪官落马数据:
点开展开数据
预览一下
这时云图已经制作完成,你可以进行分享。
如果不想写代码的朋友,制作到这里,就可以分享你的云图给好友了。甚至可以用<iframe></iframe>的形式,嵌入到您的网站里。
当然,想要更加炫酷效果的朋友们,就要继续往下看,写两句代码啦。
第二步、云检索
对于自己云数据的检索,我们可以使用多边形检索,附近检索,还有ID检索。这里给出的例子是多边形检索,如下图,给中国区域画个大概的图。
自制简易的坐标拾取工具:http://zhaoziang.com/amap/picpoint.html
云检索代码:
//使用云检索CloudDataSearch
function cloudSearch() { var arr = new Array(); //绘制多边形 arr.push(new AMap.LngLat(73.388672,50.578345)); arr.push(new AMap.LngLat(73.388672,34.578345));arr.push(new AMap.LngLat(78.388672,28.264383));arr.push(new AMap.LngLat(88.388672,21.578345)); arr.push(new AMap.LngLat(118.912109,20.264383)); arr.push(new AMap.LngLat(125.912109,39.264383)); arr.push(new AMap.LngLat(134.912109,43.578345)); arr.push(new AMap.LngLat(134.912123,56.578309)); arr.push(new AMap.LngLat(100.912123,45.578309));arr.push(new AMap.LngLat(73.388672,50.578345)); var polygon = new AMap.Polygon({ map:mapObj, path:arr, strokeColor:"#3366FF", strokeOpacity:0.2, strokeWeight:2, fillColor: "#3366FF", fillOpacity: 0.2 }); polygon.setMap(mapObj); var search; var searchOptions = { keywords:"",orderBy:"time:ASC"}; mapObj.plugin(["AMap.Scale"],function(){ var scale = new AMap.Scale(); mapObj.addControl(scale); }); //加载CloudDataSearch服务插件 mapObj.plugin(["AMap.CloudDataSearch"], function() { search = new AMap.CloudDataSearch('53549433e4b0a8066457c35b', searchOptions); //构造云数据检索类 AMap.event.addListener(search, "complete", cloudSearch_CallBack); //查询成功时的回调函数 AMap.event.addListener(search, "error", errorInfo); //查询失败时的回调函数 search.searchInPolygon(arr); //多边形检索 });
}
添加信息窗口和覆盖物
//添加marker和infowindow
function addmarker(i, d, mon){ var lngX = d._location.getLng(); var latY = d._location.getLat(); var s=new AMap.Size(40, 50);var iconimg = new AMap.Icon({p_w_picpath:d.p_w_picpath,p_w_picpathSize:s, size:s });var markerOption = { map:mapObj, icon:iconimg,offset: new AMap.Pixel(-10,-30),position:new AMap.LngLat(lngX, latY) }; mar = new AMap.Marker(markerOption); marker.push(new AMap.LngLat(lngX, latY)); var datetime1 = d.time;var datetimestr=d.time.toString()var year1 = datetimestr[0]+datetimestr[1]+datetimestr[2]+datetimestr[3];var month1 = datetimestr[4]+datetimestr[5];var date1 = datetimestr[6]+datetimestr[7];var infoWindow = new AMap.InfoWindow({ content:"<h3><font face=\"微软雅黑\"color=\"#3366FF\">"+(i+1) + "."+ d._name +"</font></h3><hr />" + "官职:" + d.title + "<br />" + "落马时间:" + year1 + "年"+month1+"月"+date1+"日" + "<br />"+ "简介:" + d.profile + "<br />" + "<img class='touxiang' src="+d.p_w_picpath+"></img>", size:new AMap.Size(300, 0), autoMove:true, offset:new AMap.Pixel(0,-30) }); windowsArr.push(infoWindow); var aa = function(){infoWindow.open(mapObj, mar.getPosition());}; AMap.event.addListener(mar, "click", aa);
}
云检索的简单示例,大家可以直接参考官网:http://api.amap.com/javascript/example/num/1903
第三步、结果面板
结果面板就是展示搜索结果的地方。当检索到数据后,在右侧展示出来。
并且点击结果时,打开对应的信息窗口。
//回调函数 function cloudSearch_CallBack(data) { resultArr = data.datas;}//回调函数 function errorInfo(data) { resultStr = data.info; document.getElementById("result").innerHTML = resultStr; } //根据id打开搜索结果点tip function openMarkerTipById1(pointid,thiss){ thiss.style.background='#CAE1FF'; windowsArr[pointid].open(mapObj, marker[pointid]); } //鼠标移开后点样式恢复 function onmouseout_MarkerStyle(pointid,thiss) { thiss.style.background=""; }
第四步、添加时间控件
时间控件在网上找了许多个,最后决定用JQ的jquery-ui-1.10.4.custom.js。
function sliderChanged(event, ui)
{var value= $( "#slider" ).slider( "option", "value" )/10 + "";mon = value;mapObj.clearMap(); if (value < 10)mon = "20130" + value.substring(0,2) + "30";else if(9 < value && value < 13)mon = "2013" + value + "00";else if(12 < value && value < 22)mon = "2014" + value-12 + "00"; else if(21 < value && value < 25)mon = "2014" + value-12 + "30"; addmarkertest(mon);
};function SliderOn(sliderId,ministep)
{var value = $( '#'+sliderId ).slider( "option", "value" );var max = $( '#'+sliderId ).slider( "option", "max" );if(value>=max){clearInterval(intervalId);return;}$( '#'+sliderId ).slider( "option", "value", value + ministep );
};$( "#slider" ).slider();$( "#slider" ).slider( "option", "max", 240 );$( "#slider" ).slider( "option", "step", 10 );$( "#slider" ).slider( "option", "animate", "slow" ); $( "#slider" ).on( "slide", sliderChanged);$( "#slider" ).on( "slidechange", sliderChanged);intervalId = setInterval("SliderOn('slider',10)",300);
完结。
-----------------------------------------------------------------------------------------
全部源代码:
点击展开全部源代码
再看一遍效果:
demo地址:http://zhaoziang.com/amap/tanguan.html
转载于:https://blog.51cto.com/8920932/1536162
【云图】如何制作中国贪官落马图?相关推荐
- 用jQuery插件jVectorMap制作中国省份区域图
jVectorMap是一个优秀的.兼容性强的jQuery地图插件.它可以工作在包括IE6在内的各款浏览器中,矢量图输出,除官方提供各国地图数据外,用户可以使用数据转换程序定制地图数据. 这里基于jVe ...
- 生成中文词云图的制作:带有不同的背板
简 介: 使用Python中的响应软件软件包制作应用与中文的词云图片.使用jieba用于中文词语划分.文中对于程序的背景图片以及不同的字体所确定的词云的表现进行了测试. 关键词: 词云,字体,背景 # ...
- python作中国地图背景气泡图_exce表格中怎么制作中国地图背景数据气泡图
exce表格中怎么制作中国地图背景数据气泡图 exce表格中怎么制作中国地图背景数据气泡图?excel表格中想要在中国地图上显示气泡来看看地区分布情况,该怎么设置中国地图气泡图表呢?下面我们就来看看详 ...
- python作中国地图背景气泡图_Excel图表中制作中国地图背景气泡图的操作方法
在一些商务PPT,经常能够看见以中国或世界地图作为背景的图表,并且使用气泡图反映数据的大小,如何实现这样的气泡图.今天,学习啦小编就教大家在Excel图表中制作中国地图为背景气泡图的操作方法. Exc ...
- python作中国地图背景气泡图_excel怎么制作中国地图背景效果的气泡图?
在一些商务PPT,经常能够看见以中国或世界地图作为背景的图表,并且使用气泡图反映数据的大小,如下图所示.该怎使用excel制作气泡图效果呢?下面我们就来看看详细的教程. 软件名称:Microsoft ...
- D3.js 制作中国地图 .net 公共基础类
D3.js 制作中国地图 from: http://d3.decembercafe.org/pages/map/index.html GeoJSON is a format for encoding ...
- python动态演示数据gdp_利用Python制作中国GDP分布图和动态演示
利用Python制作中国GDP分布图和动态演示 数据读取 ## 导入相关模块import pandas as pdimport geopandas as gpdimport numpy as np i ...
- 利用Python制作中国GDP分布图和动态演示
利用Python制作中国GDP分布图和动态演示 数据读取 ## 导入相关模块 import pandas as pd import geopandas as gpd import numpy as n ...
- 设计桑基图_教你用pyecharts制作交互式桑基图,赶快学起来吧!
由于工作的需要,经常需要进行可视化展示,除了一些常用的BI工具,我也会使用python对数据进行可视化. python的第三方可视化库有很多,比如matplotlib.seaborn.plotly.b ...
最新文章
- Socket拉屎模型之二--实践篇
- 一个免费的css编辑器——Free CSS Toolbox
- 告别运营怪圈,不做“背锅侠+加班狗+低薪族”!
- 使用 jquery 创建数组
- Mysql-ROW_FORMAT
- 2017年内容安全十大事件盘点
- 实时数仓入门训练营:实时数仓助力互联网实时决策和精准营销
- 远程工具连接mysql备份_MySQL远程连接 备份还原
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tbl_contact' in 'where clause'.
- 技巧分享 PDF如何删除数字签名
- 聊聊spring security oauth2的password方式的认证
- docker 部署 gitlab最新版本( 当前 11.8.1通过验证)
- 爬虫练习--爬取CNNVD相关漏洞
- cruzer php sandisk 闪迪u盘量产工具_sandisk量产工具(闪迪U盘量产工具) 1.4
- 【总结】最专业最系统的CV内容,有三AI所有免费与付费的计算机视觉课程汇总(2022年7月)...
- 教你一键采集天猫商品主图视频的方法及步骤
- 为了下半年的「双 11」,阿里的「赚钱机器」开始冲刺
- iOS开发之在地图上绘制出你运动的轨迹
- 《中国人工智能系列白皮书——智能驾驶》精编
- 转载:为什么Linux不需要磁盘碎片整理
热门文章
- bzoj1724[Usaco2006 Nov]Fence Repair 切割木板*
- 虚拟机中出现两个虚拟网卡
- Linux文件系统的目录结构详解
- 《软件测试自动化之道》读书笔记 之 目录导航
- 设置元素浮动的几种方式
- python的列表操作_在Python中列表的操作
- python ** 运算符_Python语法基础(2)运算符
- HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException)
- 单例模式(七种实现方法)
- 持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)