利用百度地图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 相关文章推荐
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
Dec 20 Javascript
2种jQuery 实现刮刮卡效果
Feb 01 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
May 30 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
Javascript之面向对象--方法
Dec 02 Javascript
纯JS单页面赛车游戏制作代码分享
Mar 03 Javascript
常用的9个JavaScript图表库详解
Dec 19 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
vue动态注册组件实例代码详解
May 30 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 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
咖啡常见的种类
2021/03/03 新手入门
PHP默认安装产生系统漏洞
2006/10/09 PHP
isset和empty的区别
2007/01/15 PHP
PHP+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
javascript代码加载优化方法
2011/01/30 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
Python中的取模运算方法
2018/11/10 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
超市中秋节活动方案
2014/02/12 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
大学生心理活动总结
2014/07/04 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
离婚纠纷代理词
2015/05/23 职场文书
春风化雨观后感
2015/06/11 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python