基于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网络编程学习笔记(一)
Jun 09 Python
Python中列表和元组的相关语句和方法讲解
Aug 20 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
python编写简单爬虫资料汇总
Mar 22 Python
python实现多线程网页下载器
Apr 15 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
python实现简单井字棋游戏
Mar 04 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
Mar 09 Python
pandas 强制类型转换 df.astype实例
Apr 09 Python
Python使用monkey.patch_all()解决协程阻塞问题
Apr 15 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
Python函数中apply、map、applymap的区别
Nov 27 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
相对路径转化成绝对路径
2007/04/10 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
php读取本地json文件的实例
2018/03/07 PHP
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
javaScript基础详解
2017/01/19 Javascript
js评分组件使用详解
2017/06/06 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
Python 元组(Tuple)操作详解
2014/03/11 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
python nmap实现端口扫描器教程
2020/05/28 Python
机电工程专业应届生求职信
2013/10/03 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
2016公务员年度考核评语
2015/12/01 职场文书