Python 根据百度 API 获得经纬度,根据经纬度计算城市间距离
百度提供的查询经纬度的 api 为:
http://api.map.baidu.com/geocoder?address=您要查询的地址&output=xml&key=您要输入的key
一个现成的 key 为:f247cdb592eb43ebac6ccd27f796e2d2
返回 json
我们以西安市的经纬度信息为例:
地址栏输入:
http://api.map.baidu.com/geocoder?address=西安&output=json&key=f247cdb592eb43ebac6ccd27f796e2d2
返回如下 json 信息:
{"status":"OK","result":{"location":{"lng":108.953098,"lat":34.2778},"precise":0,"confidence":12,"level":"\u57ce\u5e02"}
}
返回 xml
地址栏输入:
http://api.map.baidu.com/geocoder?address=西安&output=xml&key=f247cdb592eb43ebac6ccd27f796e2d2
返回如下 xml 信息:
<GeocoderSearchResponse><status>OK</status><result><location><lat>34.2778</lat><lng>108.953098</lng></location><precise>0</precise><confidence>12</confidence><level>城市</level></result>
</GeocoderSearchResponse>
解析返回的 xml ,获得城市的经纬度
loc_cache = {}
key = 'f247cdb592eb43ebac6ccd27f796e2d2'
def getlocation(addr):from urllib import urlopenfrom xml.dom.minidom import parseStringdoc = urlopen('http://api.map.baidu.com/geocoder?address=%s&output=xml&key=%s'%(addr, key))dom = parseString(doc.read())lat = doc.getElementsByTagName('lat')[0].firstChild.datalng = doc.getElementsByTagName('lng')[0].firstChild.datareturn map(float, (lat, lng))
根据经纬度计算城市间距离
def distance(a1, a2):loc1, loc2 = getlocation(a1), getlocation(a2)latdiff = loc1[0]-loc2[0]lngdiff = loc1[1]-loc2[1]miles = ((69.1*latdiff)**2 + (53.0*lngdiff)**2)**.5return miles*1.6092953if __name__ == '__main__':print getlocation('项城市')print getlocation('西安市')print distance('项城市', '西安市')# [33.27447, 114.89338]
# [34.2778, 108.953098]
# 518.801728496
Python 根据百度 API 获得经纬度,根据经纬度计算城市间距离相关推荐
- uniapp经纬度,并计算两坐标间距离
点击方法是获取了经纬度,没算距离,但底下有方法,拷一下就ok <template><view class="content"><image class ...
- 百度地图Geolocation的getStatus状态值(百度API获取当前位置[经纬度])
//关于状态码 //BMAP_STATUS_SUCCESS 检索成功.对应数值"0". //BMAP_STATUS_CITY_LIST 城市列表.对应数值"1" ...
- 【优秀课设】基于Python的百度API的OCR名片识别【含完整API账户】
基于Python的百度API的OCR名片识别[含完整API账户] API账户:(AK及SK) client_id ='WiXDt5e70NI5w0qSeoUBZClZ' client_secret = ...
- 根据两个位置的经纬度,来计算两地的距离(单位为KM)
上代码 /*** 根据两个位置的经纬度,来计算两地的距离(单位为KM)* 参数为double类型* long1 位置1经度* lat1 位置1纬度* long2 位置2经度* lat2 位置2纬度*/ ...
- 地理位置与经纬度之间相互转换(基于python调用百度API)
百度API 位置与经纬度相互转换 每天限制6000次 百度API平台 https://lbsyun.baidu.com/apiconsole/key#/home 1.pip install 安装相关p ...
- [Python]调用百度API进行自然语言处理 标签、关键字 以及 词法分析
1.进入百度API自然语言处理文档 进入右上角的控制台,注册登录 左侧导航栏选择自然语言处理 创建自己的应用 输入应用名称以及应用描述,其他默认即可. 在如下页面记住自己的API Key以及Secre ...
- Python调用百度API进行身份证识别
目录 1.作者介绍 2.基于百度API的身份证识别 2.1 百度ORC接口简介 2.2 算法介绍 2.2.1图像预处理 2.2.2身份证图像粗定位 2.2.3细定位各种信息和分割 2.2.4识别信息 ...
- Python调用百度API进行人脸对比
目录 1. 作者介绍 2. 关于Base64知识介绍 2.1 Bsae64是什么 2.1 Bsae64编码原理 3. 实验过程 3.1 实验过程 3.2 实验代码 3.3 运行结果 3.4 问题分析 ...
- vue 地理位置定位_Vue 通过调用百度API获取地理位置-经度纬度省份城市
一.首先在百度api注册获得ak密钥 二.新建js文件,我命名为loadBMap.js,里面创建script,代码如下: /** * 加载地图 * @param {Function} callback ...
最新文章
- 海思himm的使用:
- win7怎么清理java缓存文件夹_Win7怎么清除浏览器缓存?清除电脑缓存的妙招
- multiprocessing python_Python多线程/进程(threading、multiprocessing)知识覆盖详解
- 【重构】重构概要--六大重构模块
- 【leetcode】500. Keyboard Row
- MemSQL可以为时间序列应用做些什么
- python小学生口算题生成器_小学数学题出题神器
- php ci上传图片,CodeIgniter上传图片成功的全部过程分享
- jquery mobile用代码弹出dialog
- 使用jdbcTemplate查询返回自定义对象集合
- Android开发笔记(十三)视图绘制的几个方法
- Enterprise Library Policy Injection Application Block 之一: PIAB Overview
- spring定时任务配置,以及不执行的解决办法
- 畅购商城项目,面试问答,项目详解及全部代码
- If you already have a 64-bit JDK installed 解决方法
- 2016清华计算机学院复试名单,2016清华复试名单自动化名单
- java程序员那些提升_Java程序员如何进行自我提升?
- Generalized Function Pointers
- [转帖]隔行扫描与逐行扫描视频有什么区别
- C语言基础语法【1】
热门文章
- 发布不同类型的话题问题
- Qtcreator配置Ros环境
- 2d shader unity 阴影_【Unity Shader】平面阴影(Planar Shadow)
- Redis的持久化 RDB AOF
- Python 之 变量的基本使用
- java: Iterator的使用
- 3dmax 计算机中丢失,3DMax如何找回丢失的3D命令面板或工具栏
- .net @什么意思_.NET和F#周报2019-4 各地微软技术俱乐部汇总 ML.NET 0.10
- notepad++ 配置C/C++环境
- 记错严格管理时间---记一次老师讲的学习方法