这篇文章将为大家详细讲解有关使用python怎么计算两个地址间的距离,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。
调用高德地图的API来计算经纬度
#计算地址经纬度 import requests def geocode(address): parameters = {'address': address, 'key': 'cb649a25c1f81c1451adbeca73623251'} base = 'http://restapi.amap.com/v3/geocode/geo' response = requests.get(base, parameters) answer = response.json() print(address + "的经纬度:", answer['geocodes'][0]['location']) lon = float(answer['geocodes'][0]['location'].split(',')[0]) lat = float(answer['geocodes'][0]['location'].split(',')[1]) geocode(address)
输入下面两个地址,得到相应的经纬度。
address1 ='上海市徐汇区桂箐路靠近华鑫天地'
address2 ='上海市徐汇区田林路200号华鑫天地C座3楼'
上海市徐汇区桂箐路靠近华鑫天地的经纬度: 121.407124,31.169677 上海市浦东新区张江高科技园的经纬度: 121.593357,31.214343 lon1 = 121.407124 lat1 = 31.169677 lon2 = 121.593357 lat2 =31.214343
#计算距离 from math import radians, cos, sin, asin, sqrt # 将十进制度数转化为弧度 lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # haversine公式 dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 c = 2 * asin(sqrt(a)) r = 6371 # 地球平均半径,单位为公里 return c * r * 1000
最终结果如下,两个地方之间的距离约18公里
c * r * 1000 Out[58]: 18397.59615786144
关于使用python怎么计算两个地址间的距离就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。