基于python实现地址和经纬度转换


Posted in Python onMay 19, 2020

中文领域:

指的是提取境内地址的经纬度,的主要调用的是百度API。中间经历了一些波折,刚开始直接使用网上代码debug半天都不行,才发现要随时跟进官方改动,使用别人的API一定要看说明书啊!

首先需要从百度地图平台上注册一个AK(在这之前要注册百度的开发者身份,免费),进入其地理编码网址:

http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

页面:

基于python实现地址和经纬度转换

由于我们是要从地址转换经纬度,因此看地理编码就可以了。

基于python实现地址和经纬度转换

官网给出了服务文档(千万要看),因为爬取地址时需要提供url,这个url必须和官方提供的一致。这里需要注意两点:

1. 网上有的代码里给出的是v2,但是现在已经更新到了v3

2. 中文需要编码,使用urllib.request库里的quote默认的就行,但是可能在别的网址中会使用非大众的汉字编码方式,这个时候可以查一下相应的编码并encode一下

import json
from urllib.request import urlopen, quote
import requests
def getlnglat(address):
  url = 'http://api.map.baidu.com/geocoding/v3/'
  output = 'json'
  ak = '你的AK' # 百度地图ak,具体申请自行百度,提醒需要在“控制台”-“设置”-“启动服务”-“正逆地理编码”,启动
  address = quote(address) # 由于本文地址变量为中文,为防止乱码,先用quote进行编码
  uri = url + '?' + 'address=' + address + '&output=' + output + '&ak=' + ak +'&callback=showLocation%20'+'//GET%E8%AF%B7%E6%B1%82'
#   req = urlopen(uri)
#   res = req.read().decode() 这种方式也可以,和下面的效果一样,都是返回json格式
  res=requests.get(uri).text
  temp = json.loads(res) # 将字符串转化为json
  lat = temp['result']['location']['lat']
  lng = temp['result']['location']['lng']
  return lat,lng  # 纬度 latitude,经度 longitude

结果:

address='北京市海淀区上地十街10号'
getlnglat(address)

>>(40.05703033345938, 116.3084202915042)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现绘制树枝简单示例
Jul 24 Python
python图像处理之反色实现方法
May 30 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
Python单例模式实例详解
Mar 01 Python
Python 3.6 读取并操作文件内容的实例
Apr 23 Python
python3 遍历删除特定后缀名文件的方法
Apr 23 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
Oct 28 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
基于python实现百度语音识别和图灵对话
Nov 02 Python
python opencv通过按键采集图片源码
May 20 Python
Python Django模型详解
Oct 05 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 #Python
Django自关联实现多级联动查询实例
May 19 #Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 #Python
django 数据库返回queryset实现封装为字典
May 19 #Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 #Python
python 数据分析实现长宽格式的转换
May 18 #Python
如何把外网python虚拟环境迁移到内网
May 18 #Python
You might like
PHP制作百度词典查词采集器
2015/01/29 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
基于Python实现的微信好友数据分析
2018/02/26 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
python之mock模块基本使用方法详解
2019/06/27 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
优秀党务工作者先进事迹材料
2014/12/25 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
初三毕业感言
2015/07/31 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
工厂无线对讲系统解决方案
2022/02/18 无线电