利用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通过imaplib模块读取gmail里邮件的方法
May 08 Python
详解在Python程序中自定义异常的方法
Oct 16 Python
Python中方法链的使用方法
Feb 23 Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 Python
Python初学时购物车程序练习实例(推荐)
Aug 08 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
Jan 29 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
python 字典的打印实现
Sep 26 Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 Python
Python基于内置函数type创建新类型
Oct 22 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
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
js获取和设置属性的方法
2014/02/20 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
python中使用print输出中文的方法
2018/07/16 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
事业单位接收函
2014/01/10 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
优秀员工推荐材料
2014/12/20 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
高一作文之乐趣
2019/11/21 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang