利用百度地图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 相关文章推荐
JS中表单的使用小结
Jan 11 Javascript
javascript实现设置、获取和删除Cookie的方法
Jun 01 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
Oct 22 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
js防阻塞加载的实现方法
Sep 09 Javascript
微信小程序 保留小数(toFixed)详细介绍
Nov 16 Javascript
jQuery实现手机上输入后隐藏键盘功能
Jan 04 Javascript
Bootstrap笔记之缩略图、警告框实例详解
Mar 09 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
Oct 12 Javascript
从vue源码解析Vue.set()和this.$set()
Aug 30 Javascript
js 将线性数据转为树形的示例代码
May 28 Javascript
javascript实现导航栏分页效果
Jun 27 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读取mysql的简单实例
2014/01/15 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
显示js对象所有属性和方法的函数
2009/10/16 Javascript
js的一些常用方法小结
2011/06/29 Javascript
javascript动画浅析
2012/08/30 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
Python中使用动态变量名的方法
2014/05/06 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
医学检验专业大学生求职信
2013/11/18 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
教师听课学习心得体会
2016/01/15 职场文书
四年级语文教学反思
2016/03/03 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
python基础之爬虫入门
2021/05/10 Python