基于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数字图像处理之高级滤波代码详解
Nov 23 Python
pytorch构建网络模型的4种方法
Apr 13 Python
Windows上使用Python增加或删除权限的方法
Apr 24 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
Dec 18 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
Jul 24 Python
Python定时任务随机时间执行的实现方法
Aug 14 Python
python 利用turtle模块画出没有角的方格
Nov 23 Python
python Popen 获取输出,等待运行完成示例
Dec 30 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 Python
golang/python实现归并排序实例代码
Aug 30 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 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通用分页类page.php[仿google分页]
2008/08/31 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
分享3个php获取日历的函数
2015/09/25 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
wxPython窗口中文乱码解决方法
2014/10/11 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
python增加图像对比度的方法
2019/07/12 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
Python colormap库的安装和使用详情
2020/10/06 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
MySQL面试题
2014/01/12 面试题
保安部任务及岗位职责
2014/02/25 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
教师年终个人总结
2015/02/11 职场文书
教师节慰问信
2015/02/15 职场文书
高一地理教学工作总结
2015/08/12 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL