利用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制作爬虫采集小说
Oct 25 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
python引入导入自定义模块和外部文件的实例
Jul 24 Python
python数据分析数据标准化及离散化详解
Feb 26 Python
Python输入二维数组方法
Apr 13 Python
利用Python如何将数据写到CSV文件中
Jun 05 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
python绘图模块之利用turtle画图
Feb 12 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
虫族 ZERG 概述
2020/03/14 星际争霸
用PHP实现WEB动态网页静态
2006/10/09 PHP
php桌面中心(四) 数据显示
2007/03/11 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
功能强大的php文件上传类
2016/08/29 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
Python多进程机制实例详解
2015/07/02 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Python调用C++程序的方法详解
2017/01/24 Python
python加载自定义词典实例
2019/12/06 Python
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
全国道德模范事迹
2014/02/01 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
学校春季防火方案
2014/06/08 职场文书
国际贸易实训报告
2014/11/05 职场文书
python自动化测试之Selenium详解
2022/03/13 Python
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技