利用百度地图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 触发事件列表 比较不错
Sep 03 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
Jul 25 Javascript
JS实现多物体缓冲运动实例代码
Nov 29 Javascript
JavaScript中的变量定义与储存介绍
Dec 31 Javascript
JavaScript中使用Math.floor()方法对数字取整
Jun 15 Javascript
浅析Node.js非对称加密方法
Jan 29 Javascript
js获取html页面代码中图片地址的实现代码
Mar 05 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
Aug 24 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
Sep 19 Javascript
一步步教你利用Docker设置Node.js
Nov 20 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
Feb 02 Javascript
webpack5 联邦模块介绍详解
Jul 08 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 zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
js实现微博发布小功能
2017/01/12 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
有趣的python小程序分享
2017/12/05 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
Python新手学习标准库模块命名
2020/05/29 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
幼师专业毕业生自荐信
2013/09/29 职场文书
大学毕业生自我鉴定
2013/11/05 职场文书
高中自我评价范文
2014/01/27 职场文书
气象学专业个人求职信
2014/03/15 职场文书
服务承诺口号
2014/05/22 职场文书
机械系毕业生求职信
2014/05/28 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
孔繁森观后感
2015/06/10 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
2019年大学推荐信
2019/06/24 职场文书
python实现高效的遗传算法
2021/04/07 Python
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS