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

使用R语言osmdata包查询OpenStreetMap时遇HTTP 405错误求助

解决osmdata包HTTP 405 Method Not Allowed错误

1. 优先更新osmdata包

旧版本的osmdata可能依赖了已废弃的API端点,导致请求方法不被服务器允许。运行以下命令更新包:

install.packages("osmdata")
library(osmdata)

更新完成后重新执行你的边界框查询代码,多数情况下这个步骤就能解决问题。

2. 手动指定API端点(更新后仍出错时)

osmdata默认调用的Nominatim API可能存在访问限制或端点变更,你可以手动切换到官方Nominatim端点:

# 重置API端点为OpenStreetMap官方服务
options(osmdata.api = "https://nominatim.openstreetmap.org/search")
# 重新执行查询
city_bbox <- getbb(place_name = "Milan, Italy")

注意:Nominatim API有请求速率限制(每秒最多1次请求),频繁请求可能被临时封禁,建议在批量查询时添加延迟。

3. 添加请求延迟规避速率限制

如果你的脚本短时间内有多次请求,服务器会返回错误限制访问。可以在查询前添加延迟:

Sys.sleep(2) # 延迟2秒再发起请求
city_bbox <- getbb(place_name = "Milan, Italy")

4. 检查网络与代理设置

若你在公司内网或使用代理服务器,可能会导致请求方法被拦截。查看并配置R的代理设置:

# 查看当前代理配置
getOption("httr2_proxy")
# 若需要,设置代理地址
options(httr2_proxy = "http://你的代理服务器地址:端口")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 02:19:59