Python调用高德地图API实现四种出行路线规划

Hazel
Hazel
发布时间:2026-10-12| 3人浏览过
原创

本文介绍如何利用Python调用高德地图Web服务API,实现步行、公交、驾车和骑行四种出行方式的路线规划。通过获取地点经纬度并调用对应接口,对返回的JSON数据进行解析处理,最终展示不同交通方式下的具体路线信息。

一、简介

路径规划涵盖步行、公交、驾车及骑行等多种交通方式。本文将利用高德地图Web服务API,演示如何实现上述不同出行方式的路线规划功能。

思路

  • 首先根据具体地点获取其经纬度坐标。
  • 随后依据获取的经纬度调用API以获取详细路线数据。
  • 最后对获取的路线数据进行清洗与处理,以便于用户浏览和查看。

高德地图API

相关API文档链接如下: https://lbs.amap.com/api/webservice/guide/api/direction

用户需前往高德地图开放平台注册账号,并创建自己的项目,系统将自动分配一个唯一的Key值。

在开发支持选项中,选择“Web服务”,并选中“Web服务API”以启用相关功能。

二、获取经纬度

输入具体地点名称,程序将输出对应的经纬度坐标。

def get_location_x_y(place):
    #place = input("请输入您要查询的地址")
    url = 'https://restapi.amap.com/v3/geocode/geo?parameters'
    parameters = {
        'key':'高德官网获取key',
        'address':'%s' % place
    }
    page_resource = requests.get(url,params=parameters)
    text = page_resource.text       #获得数据是json格式
    data = json.loads(text)         #把数据变成字典格式
    location = data["geocodes"][0]['location']
    return location
 
if __name__ == '__main__':
    print(get_location_x_y("北京西站"))

以下是获取经纬度的实际运行结果。

三、路线规划(四种方式)

系统需获取起点与终点的经纬度信息,并确定具体的出行方式。

from_place = input("请输入起始地址")
from_location = get_location_x_y(from_place)
to_place = input("请输入目的地")
to_location = get_location_x_y(to_place)
type = input("出行方式(1.公交、2.步行、3.驾车、4.骑行),请输入数字")

根据上述参数调用接口,获取完整的出行路线数据。

参数type用于指定出行方式,分别对应数字1、2、3、4。不同出行方式对应的高德地图Web服务API链接也有所不同。

url="https://restapi.amap.com"
if type=="1":
    url = url+ "/v3/direction/transit/integrated"
elif type=="2":
    url = url + "/v3/direction/walking"
elif type=="3":
    url = url + "/v3/direction/driving"
elif type == "4":
    url = url + "/v4/direction/bicycling"

以下是请求参数中的关键配置说明。

parameters = {
    'key': '高德官网获取key',
    'origin': str(from_location),
    'destination': str(to_location),
    'extensions':'all',
    'output':'json',
    'city':'020',
}

参数from_location表示起点经纬度,to_location表示终点经纬度,output指定数据返回格式,此处设置为json(官网还支持xml等其他格式)。

数据处理

if type=="1":
    txt = txt['route']['transits']
    for i in txt:
        i = i['segments'][0]['bus']['buslines'][0]['name']
        print(i)
elif type=="2":
    txt = txt['route']['paths'][0]['steps']
    for i in txt:
        i = i['instruction']
        print(i)
elif type=="3":
    txt = txt['route']['paths'][0]['steps']
    for i in txt:
        i = i['instruction']
        print(i)
elif type == "4":
    txt = txt['data']['paths'][0]['steps']
    for i in txt:
        i = i['instruction']
        print(i)

由于不同出行方式返回的数据结构键名(key)存在差异,因此需要针对每种方式编写对应的处理逻辑,以确保数据便于浏览。

四、演示效果

1、公交出行效果

2、步行出行效果

3、驾车出行效果

4、骑行出行效果

五、结尾

综上所述,本文展示了如何使用Python借助高德地图Web服务API,实现包括公交、步行、驾车和骑行在内的多种出行方式路线规划。

至此,关于Python实现四种出行路线规划的教程介绍完毕。如需了解更多Python出行路线规划相关内容,建议搜索本站往期文章或继续浏览后续相关文章,感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。