利用百度地图JSAPI生成h7n9禽流感分布图实现代码


Posted in Javascript onApril 15, 2013

下图为使用百度地图JSAPI生成的H7N9感染分布图示例,其中的数据来自新华网(4.8号),截图如下:
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
使用的功能列表如下:
1.自定义版权控件功能,即(1)对应的数据来源部分,代码如下:

var cr = new BMap.CopyrightControl({anchor: BMAP_ANCHOR_TOP_RIGHT}); 
map.addControl(cr); //添加版权控件 
var bs = map.getBounds(); 
cr.addCopyright({id: 1, content: "<a href='http://news.xinhuanet.com/local/2013-04/08/c_115307243.htm' style='fontFamily:微软雅黑;font-size:18px;background:white'>H7N9数据来源</a>", bounds: bs});

2.获取行政边界功能,即(2)对应的四个省市边界,代码如下:
var bdary = new BMap.Boundary();//行政边界服务 
var length=data.length; 
for (var index=0;index<length ;index++ ) 
{ 
(function(index){ //闭包用法 
bdary.get(data[index].city, function(rs){ //获取行政区域 
var count = rs.boundaries.length; //行政区域有几部分多边形组成 
var bounds; 
var center; 
for(var i = 0; i < count; i++){ 
ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2, strokeColor: data[index].color,fillColor: data[index].color,fillOpacity:0.8 }); //建立多边形覆盖物 
if (!bounds)//取行政区域第一组成部分的中心点 
{ 
center=ply.getBounds().getCenter(); 
} 
map.addOverlay(ply); //添加行政边界 
} 
}); 
})(index); 
}

3. 添加marker点和label,即(3,4)显示表示人的图片及感染人数的label:
var myIcon = new BMap.Icon("infection.png", new BMap.Size(27,60)); 
var marker1 = new BMap.Marker(center,{icon:myIcon}); // marker 
map.addOverlay(marker1); 
var label = new BMap.Label("人数"+data[index].infect,{offset:new BMap.Size(-10,0)});//显示label 
marker1.setLabel(label);

完整代码如下:
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<style type="text/css"> 
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;} 
#l-map{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;} 
#r-result{height:100%;width:20%;float:left;} 
</style> 
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script> 
<title>H7N9分布图</title> 
</head> 
<body> 
<div id="allmap"></div> 
</body> 
</html> 
<script type="text/javascript"> 
var map = new BMap.Map("allmap"); 
map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 5); 
map.enableScrollWheelZoom(); 
var cr = new BMap.CopyrightControl({anchor: BMAP_ANCHOR_TOP_RIGHT}); 
map.addControl(cr); //添加版权控件 
var bs = map.getBounds(); 
cr.addCopyright({id: 1, content: "<a href='http://news.xinhuanet.com/local/2013-04/08/c_115307243.htm' style='fontFamily:微软雅黑;font-size:18px;background:white'>H7N9数据来源</a>", bounds: bs}); 
map.setViewport(new BMap.Bounds(new BMap.Point(114.603589,26.853244),new BMap.Point(122.863975,35.288772))); //调整视野 
var data=[{city:'上海市',infect:10,color:'#FF0000'},{city:'江苏省',infect:6,color:'#EE3B3B'},{city:'安徽省',infect:2,color:'#FFAEB9'},{city:'浙江省',infect:3,color:'#EE3B3B'}]; 
//上海(10例,死亡4例)、江苏(6例)、安徽(2例)、浙江(3例,死亡2例) 4.8号数据 
var bdary = new BMap.Boundary(); 
var length=data.length; 
for (var index=0;index<length ;index++ ) 
{ 
(function(index){ //闭包用法 
bdary.get(data[index].city, function(rs){ //获取行政区域 
var count = rs.boundaries.length; //行政区域有几部分多边形组成 
var bounds; 
var center; 
for(var i = 0; i < count; i++){ 
ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2, strokeColor: data[index].color,fillColor: data[index].color,fillOpacity:0.8 }); //建立多边形覆盖物 
if (!bounds)//取行政区域第一组成部分的中心点 
{ 
center=ply.getBounds().getCenter(); 
} 
map.addOverlay(ply); //添加覆盖物 
} var myIcon = new BMap.Icon("infection.png", new BMap.Size(27,60)); 
var marker1 = new BMap.Marker(center,{icon:myIcon}); // marker 
map.addOverlay(marker1); 
var label = new BMap.Label("人数"+data[index].infect,{offset:new BMap.Size(-10,0)});//显示label 
marker1.setLabel(label); 
}); 
})(index); 
} 
</script>

Done!
Javascript 相关文章推荐
图片自动更新(说明)
Oct 02 Javascript
javascript 解析url的search方法
Feb 09 Javascript
浅析JavaScript中的隐式类型转换
Dec 05 Javascript
Vue.js每天必学之Class与样式绑定
Sep 05 Javascript
微信小程序实现图片预加载组件
Jan 18 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
Mar 30 Javascript
vue.js动态数据绑定学习笔记
May 19 Javascript
vue 挂载路由到头部导航的方法
Nov 13 Javascript
vue props传值失败 输出undefined的解决方法
Sep 11 Javascript
详解写好JS条件语句的5条守则
Feb 28 Javascript
vue axios重复点击取消上一次请求封装的方法
Jun 19 Javascript
js实现贪吃蛇游戏(简易版)
Sep 29 Javascript
jquery分页插件AmSetPager(自写)
Apr 15 #Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
Apr 15 #Javascript
关于jQuery object and DOM element
Apr 15 #Javascript
在jQuery中 关于json空对象筛选替换
Apr 15 #Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
Apr 15 #Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
Apr 15 #Javascript
深入了解javascript中的prototype与继承
Apr 14 #Javascript
You might like
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
js 省地市级联选择
2010/02/07 Javascript
js给onclick事件赋值,动态传参数实例解说
2013/03/28 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
python之wxPython应用实例
2014/09/28 Python
Python递归遍历列表及输出的实现方法
2015/05/19 Python
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
Python单例模式的两种实现方法
2017/08/14 Python
python实现验证码识别功能
2018/06/07 Python
python numpy 按行归一化的实例
2019/01/21 Python
python数据挖掘需要学的内容
2019/06/23 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
详解python datetime模块
2020/08/17 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
省文明单位申报材料
2014/05/08 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
HTTP中的Content-type详解
2022/01/18 HTML / CSS
python 镜像环境搭建总结
2022/09/23 Python