利用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 paramiko实现ssh远程访问的方法
Dec 03 Python
Python标准库内置函数complex介绍
Nov 25 Python
python实现红包裂变算法
Feb 16 Python
Python多线程扫描端口代码示例
Feb 09 Python
20个常用Python运维库和模块
Feb 12 Python
tensorflow更改变量的值实例
Jul 30 Python
python+pyqt5实现KFC点餐收银系统
Jan 24 Python
Python实现的微信支付方式总结【三种方式】
Apr 13 Python
20行python代码的入门级小游戏的详解
May 05 Python
基于python实现文件加密功能
Jan 06 Python
python中的错误如何查看
Jul 08 Python
Python实现异步IO的示例
Nov 05 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 mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php比较相似字符串的方法
2015/06/05 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
js 学习笔记(三)
2009/12/29 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
序列化Python对象的方法
2020/08/01 Python
pymysql模块使用简介与示例
2020/11/17 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
网络工程专业毕业生推荐信
2013/10/28 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
政府采购方案
2014/06/12 职场文书
医院节能减排方案
2014/06/13 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
七个非常实用的Python工具包总结
2021/06/15 Python
使用Apache Camel表达REST服务的方法
2022/06/10 Servers