python計算兩個地址之間的距離方法
我們調(diào)用高德地圖的API來計算經(jīng)緯度
#計算地址經(jīng)緯度
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 + "的經(jīng)緯度:", answer['geocodes'][0]['location'])
lon = float(answer['geocodes'][0]['location'].split(',')[0])
lat = float(answer['geocodes'][0]['location'].split(',')[1])
geocode(address)
我們輸入下面兩個地址,得到相應(yīng)的經(jīng)緯度。
address1 ='上海市徐匯區(qū)桂箐路靠近華鑫天地'
address2 ='上海市徐匯區(qū)田林路200號華鑫天地C座3樓'
上海市徐匯區(qū)桂箐路靠近華鑫天地的經(jīng)緯度: 121.407124,31.169677 上海市浦東新區(qū)張江高科技園的經(jīng)緯度: 121.593357,31.214343 lon1 = 121.407124 lat1 = 31.169677 lon2 = 121.593357 lat2 =31.214343
#計算距離 from math import radians, cos, sin, asin, sqrt # 將十進制度數(shù)轉(zhuǎn)化為弧度 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
最終結(jié)果如下,兩個地方之間的距離約18公里
c * r * 1000 Out[58]: 18397.59615786144
以上這篇python計算兩個地址之間的距離方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
用django-allauth實現(xiàn)第三方登錄的示例代碼
這篇文章主要介紹了用django-allauth實現(xiàn)第三方登錄的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06
Python文件操作,open讀寫文件,追加文本內(nèi)容實例
本篇文章主要介紹了Python文件操作,open讀寫文件,追加文本內(nèi)容,具有一定的參考價值,有需要的可以了解一下。2016-12-12
pandas中DataFrame排序及分組排序的實現(xiàn)示例
本文主要介紹了pandas中DataFrame排序及分組排序,pandas中的sort_values()函數(shù)原理類似于SQL中的order by,可以將數(shù)據(jù)集依照某個字段中的數(shù)據(jù)進行排序,下面就來具體介紹一下,感興趣的可以了解一下2024-04-04
pycharm調(diào)試功能如何實現(xiàn)跳到循環(huán)的某一步
這篇文章主要介紹了pycharm調(diào)試功能如何實現(xiàn)跳到循環(huán)的某一步問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
python nohup 實現(xiàn)遠程運行不宕機操作
這篇文章主要介紹了python nohup 實現(xiàn)遠程運行不宕機操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04

