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

如何修改OSRM table查询限制?自建实例调整遇问题求助

解决OSRM自建实例提升Table查询上限的问题

一、Docker环境下的正确启动命令

直接用以下完整命令启动OSRM容器,替换其中的本地路径和参数值即可:

docker run -d -p 5000:5000 -v /你的本地OSRM数据目录:/data osrm/osrm-backend osrm-routed --max-table-size=10000 /data/berlin-latest.osrm

各部分说明:

  • -d:让容器在后台运行
  • -p 5000:5000:把容器的5000端口映射到本地,方便通过localhost:5000访问服务
  • -v /你的本地OSRM数据目录:/data:将本地存放OSRM预处理后数据的文件夹挂载到容器内的/data目录,确保容器能读取到完整的数据文件
  • osrm/osrm-backend:使用官方的OSRM后端镜像
  • osrm-routed --max-table-size=10000 /data/berlin-latest.osrm:容器内执行的启动命令,--max-table-size=10000用于设置table查询的最大数量(可按需调整数值),后面的/data/berlin-latest.osrm是容器内的数据文件路径(对应本地挂载目录里的同名文件)

二、解决「Required files are missing」错误

出现这个错误是因为OSRM运行时需要完整的预处理数据文件,而非单个.osrm文件。你需要确保本地挂载的目录里包含以下配套文件(以berlin数据为例):

  • berlin-latest.osrm
  • berlin-latest.osrm.ramIndex
  • berlin-latest.osrm.fileIndex
  • berlin-latest.osrm.names
  • berlin-latest.osrm.nodes
  • berlin-latest.osrm.edges
  • berlin-latest.osrm.areas
  • berlin-latest.osrm.locations

这些文件是通过osrm-extract和osrm-contract命令预处理原始OSM数据后生成的,必须全部放在同一个目录下,容器才能正常读取。

三、验证参数是否生效

容器启动后,访问http://localhost:5000/status,返回的JSON数据里会有max_table_size字段,查看其值是否和你设置的一致,即可确认参数是否生效。

纠正之前的错误操作

  • 单独执行--max-table-size=10000:这不是独立命令,必须作为启动参数跟在osrm-routed后使用
  • 只执行osrm-routed --max-table-size=10000:缺少数据文件路径,OSRM服务无法启动,因此没有效果
  • 执行osrm-routed --max-table-size=100000 berlin-latest.osrm:当前目录下没有完整的预处理数据文件,或路径错误导致容器无法读取所需文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:30:09