【记录】调取百度地图API获取东京机场群距离

本文介绍了一种使用Python和百度地图API计算特定区域内机场间非直线路径距离的方法,并通过实例展示了如何构造请求URL、处理响应数据及将结果保存为CSV文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、需求描述

输入信息:机场名字、经纬度

返回:机场间的路径距离矩阵(非直线距离)。

二、代码

import pandas as pd
import requests
import json

df = pd.read_excel(r'东京城市群机场9_ss.xlsx')


import numpy as np


import requests
num = 8;#东京是9个
distance_channel = np.zeros((num,num))
for i in range(num):
    origin = df['lat'][i]  , df['lng'][i]
    n1=df['name'][i]
    for j in range(num):
        if j!=i:
            destination= df['lat'][j],  df['lng'][j]
            n2=df['name'][j]
            url = (f"http://api.map.baidu.com/direction_abroad/v1/driving?origin="
                f"{'%.6f'% origin[0]},{'%.6f'%origin[1]}&destination={'%.6f'%destination[0]},{'%.6f'%destination[1]}&ak=我的AK")#①
            print(url)
            res = requests.get(url)
            jd = res.json()
            print(jd)
            try:
                distance_channel[i][j] = jd['result']['routes'][0]['distance']
            except Exception as e:
                distance_channel[i][j] = -1
            #②
with open('res.csv','w',encoding='utf-8-sig') as f:#③
    print(end=',',file=f)#④
    for i in range(num):
        print(df['name'][i],end=',',file=f)#⑤
    print(file=f)
    for i in range(num):
        print(df['name'][i],end=',',file=f)#⑥
        for j in range(num):
            print(distance_channel[i][j],end=',',file=f)#⑦
        print(file=f)#⑧

 

解读:

①url这里的占位符学到了,

这个f,就是格式化string啦:

https://www.cnblogs.com/c-x-a/p/9333826.html#%E7%AE%80%E5%8D%95%E4%BE%8B%E5%AD%90

同时要注意数据格式

比如我在这里lat,lon的经纬度就没有注意格式。

 

②这里注意,是为了防止出现两个机场间没有可行的规划路径,从而返回的数据里没有distance字段,否则出现以下报错:

③怎么写矩阵,学着点

④生成个这

应该是要把矩阵的左上角空格留出来吧

⑤生成这

⑧正常了

问题:为什么到这里格式问题就没有了呢???就变成矩阵了呢???

更新:Print的end默认是回车!!不要按照④-⑧那样来,逻辑关系都乱掉了,明白Print的end默认是回车就可以了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值