利用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 16 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
python读取和保存视频文件
Apr 16 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
python中树与树的表示知识点总结
Sep 14 Python
python匿名函数的使用方法解析
Oct 10 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
利于python脚本编写可视化nmap和masscan的方法
Dec 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
我的论坛源代码(五)
2006/10/09 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python的pycurl包用法简介
2015/11/13 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
python调用摄像头显示图像的实例
2018/08/03 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
什么是方法的重载
2013/06/24 面试题
会计主管岗位职责
2014/01/03 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
个人借款协议书范本
2014/11/17 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书