查询osmdata包时出现错误:HTTP 405方法不允许。

3
最近,在R中,每次我尝试通过osmdata包查询OpenStreetMap数据库时,都会出现以下错误:
Error in `httr2::req_perform()`:
! HTTP 405 Method Not Allowed.

我一直都是用这个包在R中直接从OpenStreetMap下载数据,但现在它不再起作用了。这是我正在尝试使用的代码示例,它应该返回一个城市的边界框:
library(osmdata)

city_bbox <- getbb(place_name = "Milan, Italy")

什么是packageVersion('osmdata'),我的 osmdata-0.1.10 在上述查询中正常工作。 - undefined
版本是0.2.3。我尝试重新安装您正在使用的版本,但错误仍然出现。 - undefined
2
使用osmdata-0.2.3版本仍然可以工作吗?你尝试过debugonce(osmdata::getbb)并逐步调试到httr2::req_perform()出现的地方了吗? - undefined
显然,经过一天后,事情又恢复正常了。很可能是服务器出了问题。 - undefined
3
这个HTTP 405错误已经在{osmdata} v0.2.4中修复(请参阅https://github.com/ropensci/osmdata/releases/tag/v0.2.5,https://github.com/ropensci/osmdata/issues/328)。 - undefined
2个回答

2

有趣的是,如果我使用矢量指定bbox的边界,这段代码就能正常工作。

library(osmdata)
library(mapview)
library(sf)
Castalla <- opq (bbox = c (-0.88,38.49,-0.47,38.74)) %>% # 
  add_osm_feature (key = "name", value = "Castalla", value_exact = FALSE) %>%
  osmdata_sf ()

然而,尝试使用文档中的示例仍然导致405错误。
q <- opq ("portsmouth usa") %>%
    add_osm_feature (key = "amenity", value = "!restaurant") %>%
    add_osm_feature (key = "amenity", value = "!pub") # There are a lot of these

非常奇怪

遇到了完全相同的问题;我也运行了文档中的代码,但失败了;而你的代码却没有问题。 - undefined

-1

这是一个使用nominatimlitesf包的解决方法:

nominatim_polygon <- nominatimlite::geo_lite_sf(address = "Milan, Italy", points_only = FALSE)
bbox <- sf::st_bbox(nominatim_polygon)

似乎是在osmdataget_nominatim_query函数(getbb.R)中出现了问题,可以通过将向量传递给getbb()而不是字符串来避免这个问题。可以通过将sf多边形传递给st_bbox()来获取此向量,而我们仍然可以使用nominalite::geo_lite_sf()来获取该sf多边形,因为osmdata会出现405错误。

2
正确的答案是升级osmdata - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接