百度提供的查询经纬度的 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 获得经纬度,根据经纬度计算城市间距离相关推荐

  1. uniapp经纬度,并计算两坐标间距离

    点击方法是获取了经纬度,没算距离,但底下有方法,拷一下就ok <template><view class="content"><image class ...

  2. 百度地图Geolocation的getStatus状态值(百度API获取当前位置[经纬度])

    //关于状态码 //BMAP_STATUS_SUCCESS 检索成功.对应数值"0". //BMAP_STATUS_CITY_LIST 城市列表.对应数值"1" ...

  3. 【优秀课设】基于Python的百度API的OCR名片识别【含完整API账户】

    基于Python的百度API的OCR名片识别[含完整API账户] API账户:(AK及SK) client_id ='WiXDt5e70NI5w0qSeoUBZClZ' client_secret = ...

  4. 根据两个位置的经纬度,来计算两地的距离(单位为KM)

    上代码 /*** 根据两个位置的经纬度,来计算两地的距离(单位为KM)* 参数为double类型* long1 位置1经度* lat1 位置1纬度* long2 位置2经度* lat2 位置2纬度*/ ...

  5. 地理位置与经纬度之间相互转换(基于python调用百度API)

    百度API 位置与经纬度相互转换 每天限制6000次 百度API平台 https://lbsyun.baidu.com/apiconsole/key#/home 1.pip install 安装相关p ...

  6. [Python]调用百度API进行自然语言处理 标签、关键字 以及 词法分析

    1.进入百度API自然语言处理文档 进入右上角的控制台,注册登录 左侧导航栏选择自然语言处理 创建自己的应用 输入应用名称以及应用描述,其他默认即可. 在如下页面记住自己的API Key以及Secre ...

  7. Python调用百度API进行身份证识别

    目录 1.作者介绍 2.基于百度API的身份证识别 2.1 百度ORC接口简介 2.2 算法介绍 2.2.1图像预处理 2.2.2身份证图像粗定位 2.2.3细定位各种信息和分割 2.2.4识别信息 ...

  8. Python调用百度API进行人脸对比

    目录 1. 作者介绍 2. 关于Base64知识介绍 2.1 Bsae64是什么 2.1 Bsae64编码原理 3. 实验过程 3.1 实验过程 3.2 实验代码 3.3 运行结果 3.4 问题分析 ...

  9. vue 地理位置定位_Vue 通过调用百度API获取地理位置-经度纬度省份城市

    一.首先在百度api注册获得ak密钥 二.新建js文件,我命名为loadBMap.js,里面创建script,代码如下: /** * 加载地图 * @param {Function} callback ...

最新文章

  1. 海思himm的使用:
  2. win7怎么清理java缓存文件夹_Win7怎么清除浏览器缓存?清除电脑缓存的妙招
  3. multiprocessing python_Python多线程/进程(threading、multiprocessing)知识覆盖详解
  4. 【重构】重构概要--六大重构模块
  5. 【leetcode】500. Keyboard Row
  6. MemSQL可以为时间序列应用做些什么
  7. python小学生口算题生成器_小学数学题出题神器
  8. php ci上传图片,CodeIgniter上传图片成功的全部过程分享
  9. jquery mobile用代码弹出dialog
  10. 使用jdbcTemplate查询返回自定义对象集合
  11. Android开发笔记(十三)视图绘制的几个方法
  12. Enterprise Library Policy Injection Application Block 之一: PIAB Overview
  13. spring定时任务配置,以及不执行的解决办法
  14. 畅购商城项目,面试问答,项目详解及全部代码
  15. If you already have a 64-bit JDK installed 解决方法
  16. 2016清华计算机学院复试名单,2016清华复试名单自动化名单
  17. java程序员那些提升_Java程序员如何进行自我提升?
  18. Generalized Function Pointers
  19. [转帖]隔行扫描与逐行扫描视频有什么区别
  20. C语言基础语法【1】

热门文章

  1. 发布不同类型的话题问题
  2. Qtcreator配置Ros环境
  3. 2d shader unity 阴影_【Unity Shader】平面阴影(Planar Shadow)
  4. Redis的持久化 RDB AOF
  5. Python 之 变量的基本使用
  6. java: Iterator的使用
  7. 3dmax 计算机中丢失,3DMax如何找回丢失的3D命令面板或工具栏
  8. .net @什么意思_.NET和F#周报2019-4 各地微软技术俱乐部汇总 ML.NET 0.10
  9. notepad++ 配置C/C++环境
  10. 记错严格管理时间---记一次老师讲的学习方法