利用python和百度地图API实现数据地图标注的方法


Posted in Python onMay 13, 2019

如题,先上效果图:

利用python和百度地图API实现数据地图标注的方法

主要分为两大步骤

使用python语句,通过百度地图API,对已知的地名抓取经纬度

使用百度地图API官网的html例程,修改数据部分,实现呈现效果

一、使用python语句,通过百度地图API,获取经纬度读取文件信息

import pandas as pd
data = pd.read_excel('test_baidu.xlsx')
data

利用python和百度地图API实现数据地图标注的方法

图中可以看出,原始数据并没有经纬度。

2. 构建抓取经纬度函数

import json
from urllib.request import urlopen, quote
import requests
def getlnglat(address):
 url = 'http://api.map.baidu.com/geocoder/v2/'
 output = 'json'
 ak = '你的百度地图ak' # 百度地图ak,具体申请自行百度,提醒需要在“控制台”-“设置”-“启动服务”-“正逆地理编码”,启动
 address = quote(address) # 由于本文地址变量为中文,为防止乱码,先用quote进行编码
 uri = url + '?' + 'address=' + address + '&output=' + output + '&ak=' + ak 
 req = urlopen(uri)
 res = req.read().decode() 
 temp = json.loads(res)
 lat = temp['result']['location']['lat']
 lng = temp['result']['location']['lng']
 return lat,lng # 纬度 latitude , 经度 longitude ,

3. 抓取经纬度

for indexs in data.index:
 get_location = getlnglat(data.loc[indexs,'圈定区域'])
 get_lat = get_location[0]
 get_lng = get_location[1]
 data.loc[indexs,'纬度'] = get_lat
 data.loc[indexs,'经度'] = get_lng

data

利用python和百度地图API实现数据地图标注的方法

已经自动查找到对应的经纬度(不排除部分搜索不准,但是大概看过,还是挺准的。)

4. 生成HTML适配的格式

data_html = pd.DataFrame(columns=['content'])

for indexs in data.index:
 data_html.loc[indexs,'content'] = '{' + \
          '"lat":' + str(data.loc[indexs,'纬度']) + ',' + \
          '"lng":' + str(data.loc[indexs,'经度']) + ',' + \
          '"quyu":' + '"' + str(data.loc[indexs,'圈定区域']) +'"' + \
          '}' + ','

data_html.to_csv ("data_html.csv",encoding="gbk")
data_html

利用python和百度地图API实现数据地图标注的方法

生成对应的格式,然后就copy出来了。

二、使用百度地图API官网的html例程,修改数据部分,实现呈现效果1. copy百度地图API官网的HTML例程

地址:http://developer.baidu.com/map/jsdemo.htm#c1_19

利用python和百度地图API实现数据地图标注的方法

2. 修改部分内容

放上自己的百度地图AK

修改一下地图初始化显示的中心和缩放的系数

放上自己需要显示的信息,记得把数据中最后一个的逗号删除

修改前:

利用python和百度地图API实现数据地图标注的方法

修改后:

利用python和百度地图API实现数据地图标注的方法

题外:

其实一开始是使用folium进行尝试的,因为可以直接生成html文件,只需要Python就行了,不需要再写HTML,但是遇到两个暂时无法解决的问题:

1、marker不能正常显示,官网的marker都不行

利用python和百度地图API实现数据地图标注的方法

2、openstreetmap的细致程度,比不上百度地图,这个有点致命。

利用python和百度地图API实现数据地图标注的方法

以上所述是小编给大家介绍的利用python和百度地图API实现数据地图标注的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
简单文件操作python 修改文件指定行的方法
May 15 Python
Python break语句详解
Mar 11 Python
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
python连接字符串的方法小结
Jul 13 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
Python多线程处理实例详解【单进程/多进程】
Jan 30 Python
Python自动抢红包教程详解
Jun 11 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 Python
使用Python脚本对GiteePages进行一键部署的使用说明
May 27 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 #Python
为什么你还不懂得怎么使用Python协程
May 13 #Python
Python玩转加密的技巧【推荐】
May 13 #Python
11个Python3字典内置方法大全与示例汇总
May 13 #Python
python中的数据结构比较
May 13 #Python
Python中函数的基本定义与调用及内置函数详解
May 13 #Python
python实现弹跳小球
May 13 #Python
You might like
服务器上配置PHP运行环境教程
2015/02/12 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
jQuery使用技巧简单汇总
2013/04/18 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
Python中的闭包实例详解
2014/08/29 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
python绘图模块之利用turtle画图
2021/02/12 Python
css3学习心得分享
2013/08/19 HTML / CSS
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
煤矿班组长的职责
2013/12/25 职场文书
保护野生动物倡议书
2014/05/16 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
合伙购房协议样本
2014/10/06 职场文书
幼师中班个人总结
2015/02/12 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
pandas中关于apply+lambda的应用
2022/02/28 Python
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技
mysql数据库隔离级别详解
2022/06/16 MySQL