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

如何提升URL长度?OSRM匹配500个位置遇URI过长错误

解决OSRM请求URL过长的问题

调整Apache服务器的URL长度限制

如果坚持使用GET请求,需要修改Apache配置放宽URL长度限制:

  • 编辑Apache主配置文件/etc/apache2/apache2.conf或对应站点的配置文件(如/etc/apache2/sites-available/your-site.conf)
  • 添加或更新以下配置项:
    LimitRequestLine 65536
    LimitRequestFieldSize 65536
    
    默认LimitRequestLine为8190字节,设置为65536字节(64KB)足以容纳包含500个位置的URL
  • 保存配置后重启Apache服务:
    sudo systemctl restart apache2
    

改用POST请求(更推荐方案)

URL长度限制不仅存在于Apache,浏览器、CDN等中间层也可能有各自限制,因此更稳妥的方式是用POST请求传递位置数据:

  • OSRM的核心服务(match、route等)均支持POST请求,将坐标数据放在请求体中而非URL里
  • 以match服务为例,示例请求如下:
    curl -X POST http://127.0.1.1/match/v1/driving/ \
      -H "Content-Type: application/json" \
      -d '{
        "coordinates": [[116.397, 39.908], [116.407, 39.907], ...],
        "steps": true
      }'
    
    这种方式完全不受URL长度限制,可轻松处理500个甚至更多位置数据

额外配置注意

  • 若Apache作为OSRM的反向代理,需设置足够的请求体大小限制,可添加LimitRequestBody 1048576(1MB,可按需调整)到Apache配置中
  • 修改配置后先测试少量坐标的请求是否正常,再逐步验证500个位置的请求情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:30:56