基于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类和函数中使用静态变量的方法
May 09 Python
Python常用小技巧总结
Jun 01 Python
python简单实现获取当前时间
Aug 27 Python
Python实现Kmeans聚类算法
Jun 10 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
pycharm重命名文件的方法步骤
Jul 29 Python
使用 Supervisor 监控 Python3 进程方式
Dec 05 Python
基于pandas向csv添加新的行和列
May 25 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
Python不支持 i ++ 语法的原因解析
Jul 22 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
教你如何用python开发一款数字推盘小游戏
Apr 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
Laravel 5 学习笔记
2015/03/06 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
js计算页面刷新的次数
2009/07/20 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
Python3基础之list列表实例解析
2014/08/13 Python
使用python实现生成用户信息
2017/03/20 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
基于python图像处理API的使用示例
2020/04/03 Python
Python的信号库Blinker用法详解
2020/12/31 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
幼儿园教师教育感言
2014/02/28 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
电影雨中的树观后感
2015/06/15 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
高中生综合素质评价范文
2015/08/18 职场文书