基于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完全新手教程
Feb 08 Python
Python操作串口的方法
Jun 17 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
Python实现简单的用户交互方法详解
Sep 25 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
python交互界面的退出方法
Feb 16 Python
关于python多重赋值的小问题
Apr 17 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
通过实例解析Python RPC实现原理及方法
Jul 07 Python
用Python制作音乐海报
Jan 26 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编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
destoon二次开发入门示例
2014/06/20 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
跟我学习javascript的函数和函数表达式
2015/11/16 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
仅利用30行Python代码来展示X算法
2015/04/01 Python
python实用代码片段收集贴
2015/06/03 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
用Python写王者荣耀刷金币脚本
2017/12/21 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
python制作填词游戏步骤详解
2019/05/05 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
什么是Python中的匿名函数
2020/06/02 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
土木工程专业大学毕业生求职信
2013/10/13 职场文书
房地产销售计划书
2014/01/10 职场文书
继承权公证书
2014/04/09 职场文书
普通话宣传标语
2014/06/26 职场文书
2014年个人委托书范本
2014/10/13 职场文书
2016中考冲刺决心书
2015/09/22 职场文书