基于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 06 Python
python使用Flask框架获取用户IP地址的方法
Mar 21 Python
tensorflow输出权重值和偏差的方法
Feb 10 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
python小项目之五子棋游戏
Dec 26 Python
python__new__内置静态方法使用解析
Jan 07 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
Python Numpy之linspace用法说明
Apr 17 Python
Python jiaba库的使用详解
Nov 23 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文件上传实例详解!!!
2007/01/02 PHP
PHP代码优化的53个细节
2014/03/03 PHP
YII框架http缓存操作示例
2019/04/29 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
vue v-model的用法解析
2020/10/19 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
Python单体模式的几种常见实现方法详解
2017/07/28 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
物流仓管员工作职责
2014/01/06 职场文书
作文评语大全
2014/04/23 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
庆七一晚会主持词
2015/06/30 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书