基于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 11 Python
Python配置文件解析模块ConfigParser使用实例
Apr 13 Python
python实现用户答题功能
Jan 17 Python
Python 修改列表中的元素方法
Jun 26 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
Python使用googletrans报错的解决方法
Sep 25 Python
详解python做UI界面的方法
Feb 27 Python
详解Python locals()的陷阱
Mar 26 Python
Python操作qml对象过程详解
Sep 26 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
python 字典item与iteritems的区别详解
Apr 25 Python
python框架flask入门之路由及简单实现方法
Jun 07 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
JavaScript Chart 插件整理
2010/06/18 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
python中实现控制小数点位数的方法
2019/01/24 Python
Python3 修改默认环境的方法
2019/02/16 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
用python对oracle进行简单性能测试
2020/12/05 Python
客服主管岗位职责
2013/12/13 职场文书
《搭石》教学反思
2014/04/07 职场文书
信息技术课后反思
2014/04/27 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
单身申明具结书
2015/02/26 职场文书
护理专业自我评价
2015/03/11 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书