利用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实现异步回调机制代码分享
Jan 10 Python
python中实现定制类的特殊方法总结
Sep 28 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
python3.4爬虫demo
Jan 22 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
pytorch 实现多个Dataloader同时训练
May 29 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 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
2017/08/18 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
js局部刷新页面时间具体实现
2013/07/04 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
用vue写一个日历
2020/11/02 Javascript
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python获取文件ssdeep值的方法
2014/10/05 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Django model序列化为json的方法示例
2018/10/16 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
财务部副经理岗位职责
2014/03/14 职场文书
人事专员岗位说明书
2014/07/29 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
刑事法律意见书
2015/06/04 职场文书
养成教育主题班会
2015/08/13 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers