基于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实时分析日志的一个小脚本分享
May 07 Python
用python代码将tiff图片存储到jpg的方法
Dec 04 Python
python读取各种文件数据方法解析
Dec 29 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 Python
Python列表切片常用操作实例解析
Mar 10 Python
Python PyQt5整理介绍
Apr 01 Python
Django DRF认证组件流程实现原理详解
Aug 17 Python
python - timeit 时间模块
Apr 06 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 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
生成缩略图
2006/10/09 PHP
PHP和XSS跨站攻击的防范
2007/04/17 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
python中mechanize库的简单使用示例
2014/01/10 Python
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
基于python绘制科赫雪花
2018/06/22 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
Python 字典中的所有方法及用法
2020/06/10 Python
Python实现一个论文下载器的过程
2021/01/18 Python
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
本科生详细的自我评价
2013/09/19 职场文书
运动会广播稿150字
2014/02/19 职场文书
政府法律服务方案
2014/06/14 职场文书
小学教师工作总结2015
2015/04/07 职场文书
工伤调解协议书
2016/03/21 职场文书
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS