基于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 EOL while scanning string literal问题解决方法
Sep 18 Python
详解Python中的各种函数的使用
May 24 Python
python实现朴素贝叶斯分类器
Mar 28 Python
PyQt5实现下载进度条效果
Apr 19 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
python3利用tcp实现文件夹远程传输
Jul 28 Python
Python实现二维曲线拟合的方法
Dec 29 Python
python编写简单端口扫描器
Sep 04 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
python 图像增强算法实现详解
Jan 24 Python
django学习之ajax post传参的2种格式实例
May 14 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下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
php explode函数实例代码
2012/02/27 PHP
php实现复制移动文件的方法
2015/07/29 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
jQuery select控制插件
2009/08/17 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
canvas绘制七巧板
2017/02/03 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
Python socket 套接字实现通信详解
2019/08/27 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
先进集体获奖感言
2014/02/13 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
团队精神口号
2014/06/06 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
效能风暴心得体会
2014/09/04 职场文书
2014年网管工作总结
2014/12/11 职场文书
健康教育主题班会
2015/08/14 职场文书
高中班长竞选稿
2015/11/20 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
Oracle笔记
2021/04/05 Oracle
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js