利用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根据路径导入模块的方法
Sep 30 Python
python实现蒙特卡罗方法教程
Jan 28 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
详解django2中关于时间处理策略
Mar 06 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 Python
详解python中各种文件打开模式
Jan 19 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
python使用opencv resize图像不进行插值的操作
Jul 05 Python
用60行代码实现Python自动抢微信红包
Feb 04 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/12/06 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
PHP源代码数组统计count分析
2011/08/02 PHP
教你php如何实现验证码
2016/01/20 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
表单提交验证类
2006/07/14 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
python实现的汉诺塔算法示例
2019/10/23 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
大数据分析用java还是Python
2020/07/06 Python
歌唱比赛策划方案
2014/06/06 职场文书
化工工艺设计求职信
2014/06/25 职场文书
护理专科学生自荐书
2014/07/05 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
个人汇报材料范文
2014/12/30 职场文书
学校教学工作总结2015
2015/05/19 职场文书
开学典礼观后感
2015/06/15 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
创业计划书之面包店
2019/09/17 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
如何使用flask将模型部署为服务
2021/05/13 Python
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android