【案例】Python调用高德API查询经纬度

import requests
import json
import re
import pandas as pd

def get_cor(address):
    # 获取单个地址坐标信息
    ret = requests.get(
        url='https://restapi.amap.com/v3/geocode/geo?parameters',
        params={
            # 'region':'安阳市',
            'address':address,
            'key':'6421081fec31ba6a1f9d7e2ecd64176c'
        }
    ).json()
    return ret['geocodes'][0]['location']
# 导入数据
df = pd.DataFrame({
        '位置':['北京大学','清华大学'],
        '经度':['',''],
        '纬度':['','']})

# 查询经纬度
df['经纬度'] = df['位置'].map(get_cor)
df['经度'] = df['经纬度'].map(lambda x:x.split(',')[0])
df['纬度'] = df['经纬度'].map(lambda x:x.split(',')[1])

# 导出数据
df.to_excel("xxxx.xlsx",index = 0)

补充:根据经纬度计算两地距离

from math import radians, cos, sin, asin, sqrt

#公式计算两点间距离(m)

def geodistance(lng1,lat1,lng2,lat2):
  #lng1,lat1,lng2,lat2 = (120.12802999999997,30.28708,115.86572000000001,28.7427)
  lng1, lat1, lng2, lat2 = map(radians, [float(lng1), float(lat1), float(lng2), float(lat2)]) # 经纬度转换成弧度
  dlon=lng2-lng1
  dlat=lat2-lat1
  a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
  distance=2*asin(sqrt(a))*6371*1000 # 地球平均半径,6371km
  distance=round(distance/1000,3)
  return distance
posted @ 2021-06-03 18:55  介个车车烫屁股  阅读(399)  评论(0)    收藏  举报