You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么OSRM中步行、驾车路径规划返回的时长和距离完全一致?

问题原因

导致两种出行方式返回结果完全一致,常见原因如下:

  • 本地OSRM服务仅加载了单模式路网数据
    OSRM不同出行方式需要基于OSM原始数据分别预处理生成对应的专属路网文件,启动服务时也需要指定对应模式的路网文件。如果你的5000端口OSRM服务启动时只加载了步行模式的路网文件,不管请求路径中写的是foot还是car,服务都会用步行路网计算,返回结果自然一致。
  • OSRM服务不支持驾车模式 fallback 到步行模式
    如果你部署的OSRM服务没有预处理驾车路网,请求car模式时服务没有报错,而是默认 fallback 到了唯一可用的步行模式,也会出现两类请求返回结果相同的情况。
  • 请求实际打到了同一个模式的服务实例
    如果你本来分别部署了步行、驾车两种模式的OSRM服务,但驾车模式的服务端口不是5000,两类请求都发到了步行模式的5000端口实例,也会得到相同结果。

验证排查方法

  • 直接将代码中生成的步行、驾车两类请求url复制到浏览器调用,对比返回结果的routes字段下的路径步骤,确认是否都是步行路径规则(比如允许走步行街、人行通道等)
  • 检查OSRM服务的启动命令,确认启动时加载的路网文件对应的模式是否正确,比如启动命令为osrm-routed seoul_foot.osrm的话,仅支持步行模式计算
  • 单独调用OSRM的驾车模式接口,检查返回的响应头和状态码,确认是否正常响应驾车模式请求,没有 fallback 到其他模式

对应代码格式化后如下

# -*- coding: utf-8 -*-
"""
Created on Fri Jul 23 14:49:45 2021
@author: ukjo
"""
import datetime
import requests
import numpy as np
import pandas as pd
from util import get_src_engine, get_api_engine
import folium

src_engine = get_src_engine()

def get_public_transformation_info_from_osrm(sx, sy, dx, dy, method):
    ii32 = np.iinfo(np.int32)
    min_total_time = ii32.max

    if method == 'foot':
        url = f"http://localhost:5000/route/v1/foot/{sx},{sy};{dx},{dy}?steps=true&geometries=geojson"
    elif method == 'driving':
        url = f"http://localhost:5000/route/v1/car/{sx},{sy};{dx},{dy}"

    resp = requests.get(url)

    resp_dic = resp.json()

    duration = resp_dic['routes'][0]['duration']
    distance  = resp_dic['routes'][0]['distance']

    return duration, distance


if __name__ == '__main__':
    """
    126.9485743, 37.4794274
    127.0121342, 37.4875451
    """
    sx = 126.9485743
    sy = 37.4794274
    dx = 127.0121342
    dy = 37.4875451

    print(f"walk time : {get_public_transformation_info_from_osrm(sx, sy, dx, dy, 'foot')}")
    print(f"driving time : {get_public_transformation_info_from_osrm(sx, sy, dx, dy, 'driving')}")

内容的提问来源于stack exchange,提问作者verystrongjoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:45:03