利用百度地图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移除事件 js绑定事件实例应用
Nov 28 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
Aug 18 Javascript
详解JavaScript的流程控制语句
Nov 30 Javascript
jQuery的实例及必知重要的jQuery选择器详解
May 20 Javascript
详解JavaScript的内置对象
Dec 07 Javascript
js学习心得_一个简单的动画库封装tween.js
Jul 14 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
Mar 29 Javascript
vue.js 实现a标签href里添加参数
Nov 12 Javascript
js String.prototype.trim字符去前后空格的扩展
Aug 23 Javascript
Javascript原型链及instanceof原理详解
May 25 Javascript
JavaScript手写数组的常用函数总结
Nov 22 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类中Static方法效率测试代码
2010/10/17 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
django之常用命令详解
2016/06/30 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
简单实现Python爬取网络图片
2018/04/01 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
《雷雨》教学反思
2014/02/20 职场文书
中秋寄语大全
2014/04/11 职场文书
个人欠款担保书
2014/05/20 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
整改通知书
2015/04/20 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
Rust中的Struct使用示例详解
2022/08/14 Javascript