基于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 26 Python
详解Python中的条件判断语句
May 14 Python
在Python中处理字符串之isdigit()方法的使用
May 18 Python
python 截取 取出一部分的字符串方法
Mar 01 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
Oct 25 Python
python实现数据写入excel表格
Mar 25 Python
Pyqt QImage 与 np array 转换方法
Jun 27 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
Aug 09 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
Apr 02 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
Python实现曲线拟合的最小二乘法
Feb 19 Python
详解python的内存分配机制
May 10 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中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
JavaScript 特殊字符
2007/04/05 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
python list转dict示例分享
2014/01/28 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
培训主管的岗位职责
2013/11/23 职场文书
军训心得体会
2013/12/31 职场文书
物业工作计划书
2014/01/10 职场文书
迎接领导欢迎词
2014/01/11 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
大学生操行评语大全
2014/12/31 职场文书
校运会宣传稿大全
2015/07/23 职场文书
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis