用计算python两点之间的距离math_python计算两个地址之间的距离方法

这篇博客介绍了如何利用Python调用高德地图API获取地址的经纬度,并通过计算经纬度来确定两个地点之间的距离。示例中给出了上海两个地址的经纬度,并演示了如何使用haversine公式计算它们之间的距离,结果显示约为18公里。
摘要由CSDN通过智能技术生成

我们调用高德地图的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计算两个地址之间的距离方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: python计算两个地址之间的距离方法

本文地址: http://www.cppcns.com/jiaoben/python/229865.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值