先上效果图

上海市2010年第六次全国人口普查

全国人口普查10年一次,不要问我为什么不找2017年,我也没办法,摊手~

思路

申请使用百度地图API密钥

数据准备

分析数据

把地区改编成经纬度

画图

1. 申请使用百度地图API密钥

点击创建应用,应用名称随便取,IP白名单,写自己的本地IP,或者0.0.0.0/0 都可

image.png

点击提交,记住自己的密钥(AK),后面有用。

2. 数据准备(xlsx格式)

3. 数据分析&4. 把地区改编成经纬度

我用python3.6

import json

from urllib.request import urlopen, quote

import xlrd

# 打开xlsx

book =xlrd.open_workbook("/Users/chengkai/Desktop/file/learn/project/sh_population/sh_population.xlsx")

# 打开sheet1

sh = book.sheet_by_index(0)

# 待拼接的url(不完整的url)

url = 'http://api.map.baidu.com/geocoder/v2/'

ak = '你自己的密钥'

# 遍历每一行,为什么从1开始呢,因为0是标题行,不需要

for i in range(1, sh.nrows):

# 各个地区前面加上‘上海市’,保证后面检索到的所有经纬度都是上海市的地区,而不是别的省市的

city ='上海市'+sh.cell_value(i,0)

# 取第二列所有人口

population = sh.cell_value(i,1)

# 因为出现中文,所以转换一下格式

add = quote(city)

# 以 json 的格式输出

output = 'json'

# URL 正式拼接,这一句画,下面还会详解解释

uri = url + '?' + 'address=' + add + '&output=' + output + '&ak=' + ak

req = urlopen(uri)

# 传入的字符串,需要解码

res = req.read().decode()

# 写成json 字典的形式

temp = json.loads(res)

# 提取经度

lng = temp['result']['location']['lng']

# 提取纬度

lat = temp['result']['location']['lat']

# 写成新的字典

str_temp = '{"lat":' + str(lat) + ',"lng":' + str(lng) + ',"count":' + str(population) +'},'

print(str_temp)

注释一,url拼接

仔细观察url 不一样的地方就是地区

看到下面的字典知道经纬度是怎么一层层提取了把

image.png

image.png

最后结果

{"lat":31.227203440768868,"lng":121.49607206403445,"count":429891.0},

{"lat":31.213348379555082,"lng":121.48123797847695,"count":248779.0},

{"lat":31.169152089592195,"lng":121.44623500472937,"count":1085130.0},

{"lat":31.213301496813617,"lng":121.3876161086648,"count":690571.0},

{"lat":31.23538080348789,"lng":121.45475555700204,"count":246788.0},

{"lat":31.263742929075534,"lng":121.39844294374956,"count":1288881.0},

{"lat":31.288044465926138,"lng":121.4577688102147,"count":830476.0},

{"lat":31.28249722898657,"lng":121.49191854079479,"count":852476.0},

{"lat":31.304510479541904,"lng":121.5357165996346,"count":1313222.0},

{"lat":31.093537540382123,"lng":121.42502428093465,"count":2429372.0},

{"lat":31.398622694466777,"lng":121.40904121844942,"count":1904886.0},

{"lat":31.36433805543363,"lng":121.25101353755592,"count":1471231.0},

{"lat":31.23089534913395,"lng":121.6384813140922,"count":5044430.0},

{"lat":30.83508077708232,"lng":121.24840817975154,"count":732410.0},

{"lat":31.021244628098586,"lng":121.22679050142115,"count":1582398.0},

{"lat":31.130862397996967,"lng":121.09142524282201,"count":1081022.0},

{"lat":30.915122452605868,"lng":121.56064167963345,"count":1083463.0},

{"lat":31.633564930802045,"lng":121.5353975435439,"count":703722.0},

5. 画图

复制粘贴下面的代码写到html文件

1 改成你的密钥

3 把下面的var points 的内容和上面上海市人口的内容替换

2 选一个地图的中心点,我选择黄浦区作为我的中心点

4 下面的代码还有很多参数值得研究,有时间的读者不妨研究一下,可以留言相互学习哈

image.png

如果写如密钥报错的话,可以用v=1.4版本的,因为这版本不需要密钥

热力图功能示例

ul,li{list-style: none;margin:0;padding:0;float:left;}

html{height:100%}

body{height:100%;margin:0px;padding:0px;font-family:"微软雅黑";}

#container{height:500px;width:100%;}

#r-result{width:100%;}

var map = new BMap.Map("container"); // 创建地图实例

var point = new BMap.Point(121.44623500472937, 31.169152089592195);

map.centerAndZoom(point,15); // 初始化地图,设置中心点坐标和地图级别

map.enableScrollWheelZoom(); // 允许滚轮缩放

var points =[{"lat":31.227203440768868,"lng":121.49607206403445,"count":429891.0},

{"lat":31.213348379555082,"lng":121.48123797847695,"count":248779.0},

{"lat":31.169152089592195,"lng":121.44623500472937,"count":1085130.0},

{"lat":31.213301496813617,"lng":121.3876161086648,"count":690571.0},

{"lat":31.23538080348789,"lng":121.45475555700204,"count":246788.0},

{"lat":31.263742929075534,"lng":121.39844294374956,"count":1288881.0},

{"lat":31.288044465926138,"lng":121.4577688102147,"count":830476.0},

{"lat":31.28249722898657,"lng":121.49191854079479,"count":852476.0},

{"lat":31.304510479541904,"lng":121.5357165996346,"count":1313222.0},

{"lat":31.093537540382123,"lng":121.42502428093465,"count":2429372.0},

{"lat":31.398622694466777,"lng":121.40904121844942,"count":1904886.0},

{"lat":31.36433805543363,"lng":121.25101353755592,"count":1471231.0},

{"lat":31.23089534913395,"lng":121.6384813140922,"count":5044430.0},

{"lat":30.83508077708232,"lng":121.24840817975154,"count":732410.0},

{"lat":31.021244628098586,"lng":121.22679050142115,"count":1582398.0},

{"lat":31.130862397996967,"lng":121.09142524282201,"count":1081022.0},

{"lat":30.915122452605868,"lng":121.56064167963345,"count":1083463.0},

{"lat":31.633564930802045,"lng":121.5353975435439,"count":703722.0},

];

if(!isSupportCanvas()){

alert('热力图目前只支持有canvas支持的浏览器,您所使用的浏览器不能使用热力图功能~')

}

//详细的参数,可以查看heatmap.js的文档 https://github.com/pa7/heatmap.js/blob/master/README.md

//参数说明如下:

/* visible 热力图是否显示,默认为true

* opacity 热力的透明度,1-100

* radius 势力图的每个点的半径大小

* gradient {JSON} 热力图的渐变区间 . gradient如下所示

* {

.2:'rgb(0, 255, 255)',

.5:'rgb(0, 110, 255)',

.8:'rgb(100, 0, 255)'

}

其中 key 表示插值的位置, 0~1.

value 为颜色值.

*/

heatmapOverlay = new BMapLib.HeatmapOverlay({"radius":50});

map.addOverlay(heatmapOverlay);

heatmapOverlay.setDataSet({data:points,max:100});

//是否显示热力图

function openHeatmap(){

heatmapOverlay.show();

}

function closeHeatmap(){

heatmapOverlay.hide();

}

closeHeatmap();

function setGradient(){

/*格式如下所示:

{

0:'rgb(102, 255, 0)',

.5:'rgb(255, 170, 0)',

1:'rgb(255, 0, 0)'

}*/

var gradient = {};

var colors = document.querySelectorAll("input[type='color']");

colors = [].slice.call(colors,0);

colors.forEach(function(ele){

gradient[ele.getAttribute("data-key")] = ele.value;

});

heatmapOverlay.setOptions({"gradient":gradient});

}

//判断浏览区是否支持canvas

function isSupportCanvas(){

var elem = document.createElement('canvas');

return !!(elem.getContext && elem.getContext('2d'));

}

最后用浏览器打开html 文件,会看到最前面的镇楼图,祝君好运~!

python 日本 地图 热力图_python 在百度地图上画热力图相关推荐

  1. python画城市热力图_python 在百度地图上画热力图

    先上效果图 上海市2010年第六次全国人口普查 全国人口普查10年一次,不要问我为什么不找2017年,我也没办法,摊手- 思路 申请使用百度地图API密钥 数据准备 分析数据 把地区改编成经纬度 画图 ...

  2. python爬取百度地图数据_Python利用百度地图爬取商家信息

    import requests import json import pandas as pd def request_hospital_data(): ak="换成自己的 AK" ...

  3. python爬取地图上的经纬度_Python调用百度地图API爬取经纬度

    作者:国服帅座  经济学在读硕士 微信公众号:统计之家 你吃肯德基,我点麦当劳.本是替代品,却众口难调.每个人都有独特的偏好,都有一份要坚守的情怀.高德与百度,你心仪哪款呢? 认识百度地图API 百度 ...

  4. Python地理地图可视化:folium把百度地图中国城市中心经纬度解析出来并在地图上展示(三)

    python地理地图可视化:folium把百度地图各个城市经纬度解析出来并在地图上展示(三) 上一篇(https://zhangphil.blog.csdn.net/article/details/1 ...

  5. 一行CSS样式去除百度地图版权,去除百度地图右上角平移缩放控件的市县区文字

    /*去除百度地图版权,去除百度地图右上角平移缩放控件的市县区文字*/ .anchorBL, .BMap_zlHolder {display: none;visibility: hidden;}

  6. android 高德地图移动卡顿_高德地图4.8和百度地图3.1的抉择,如何发送地址到车机(下载失效本帖奉上百度云盘)...

    9月已经过去半个月了,升级一直围绕着领克车友,8月的兴奋,总想知道车机有什么改变,很多车友提前去预约,总想尝第一口鲜,这个第一口可不好喝,头啖汤随好,但会烫口,于是我带着观望的态度,因为我始终觉得,安 ...

  7. vue中使用echarts结合百度地图制作地图(引入百度地图、获取百度地图实例、设置百度地图)

    1.初始化echarts以及例子可以看管网的 地址:https://echarts.apache.org/examples/zh/editor.html?c=map-polygon 2说下我遇到的问题 ...

  8. 百度地图集成(一):百度地图简单实现

    百度地图集成概要 百度地图集成(一):百度地图简单实现 百度地图集成(二):百度定位以及反编译地理位置 百度地图集成(三):检索功能的实现 百度地图集成(四):零散 百度地图集成第一篇: 百度地图简单 ...

  9. Android百度地图雷达效果,地图导航实测:百度地图路线雷达圈粉“老司机”

    原标题:地图导航实测:百度地图路线雷达圈粉"老司机" 前段时间,百度和高德就谁是第一的问题引发了一场争论,而作为驾龄近10年的老司机,我并不关心两家输赢,只想说说哪个导航更好用.更 ...

  10. html5 geolocation 百度地图,html5 geolocation配合百度地图api实现定位

    1.了解html5 geolocation HTML5 Geolocation(地理定位)用于定位用户的位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的.=> 使用 ...

最新文章

  1. 如何在vc的拆分窗口中使用CFormView派生类
  2. WPF学习笔记——设置ListBox选中项的背景颜色
  3. ios yymodel 将字典转数组模型_Python3 字典
  4. Spring容器中Bean的作用域
  5. MySQL中的多表连接
  6. .Net Core中使用RabbitMQ
  7. 输出一个文件的最后n行数据,如果文件总行数不足n行,则显示全部数据
  8. Python机器学习:逻辑回归003逻辑回归的损失函数的梯度
  9. (转)基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用...
  10. matplotlib Artist 教程
  11. 小白错误三——Collider存在,刚体存在情况下,不能触发OnCollisionEnter函数
  12. 专业家庭影院功放推荐-数字功放芯片
  13. 生物光子学 19节 加州大学戴维斯分校
  14. H3C AP状态指示灯
  15. 推荐10款简单好用的免费内网穿透工具
  16. c语言余弦定理float,余弦相似度公式
  17. 程序员英语语法学习(2)认识词性(名词、动词、副词、形容词、冠词、介词、连词、语气词)
  18. 光谱、多光谱技术、高光谱技术以及遥感中的应用
  19. 批量制作的标签如何选择打印范围
  20. 微信短视频去水印小程序搭建教程(含源码),超级详细哦,支持流量主的

热门文章

  1. 神舟战神换cpu教程_神舟战神能换什么cpu 神舟战神Z7可以换CPU吗
  2. Deepin和Windows10双系统,如何修改默认启动项
  3. 12月21诛仙服务器维护,12月31日全服停机更新维护公告
  4. 一些用的上的在线网站
  5. springboot项目启动报Ambiguous mapping. Cannot map ‘xxxController‘ method
  6. java一个中文几个字节_一个汉字占几个字节你真的记住了吗?
  7. POI XssfCellStyle背景颜色对照
  8. 校赛第二轮 —— 国产电影保护月是国产电影之福 / 祸
  9. [渝粤教育] 西南科技大学 古代汉语 在线考试复习资料
  10. 优盘插计算机上成快捷方式,u盘一插就变成快捷方式打不开怎么办 u盘变成快捷方式怎么办...