我正在尝试计算海岸线上某些点与最近点之间的距离。为此,我需要从特定区域下载海岸线数据(坐标)
我使用了osmdata中的getbb
getbb (place_name = "England") %>%
opq () %>%
add_osm_feature("natural", "coastline") %>%
osmdata_sf()
但是,getbb只允许我从列表中的特定国家/地区下载数据,但我需要的是整个波罗的海的海岸线。是否可以通过下载自定义边界框的海岸线数据来设置getbb?
答案 0 :(得分:0)
我对osmdata的经验很少/没有经验,但是看着它。 Getbb正在获取一个自定义边界框,因此您无需将其设置为任何值。 Getbb还仅允许一个输入,因此您无法合并区域。我尝试以最小的成功尝试搜索“波罗的海”。
但是,opq()允许使用bbox参数:
(来自帮助):(i)四个用于指定最大和最小经度和纬度的数值; (ii)传递给getbb的字符串将转换为数字边界框;或(iii)代表从getbb(...,format_out =“ polygon”)返回的边界多边形的矩阵。
因此,如果您可以在初始查询之外创建自定义边界框,则应该可以继续前进。
library(osmdata)
custom_area <- opq (bbox = c(-86.7523, -86.726, 2.3, 2.1), timeout = 60) %>%
add_osm_feature("natural", "coastline") %>%
osmdata_sf()
opq帮助中的另一个可能选项是:
q1 <- getbb ("portsmouth", display_name_contains = "USA") %>%
opq () %>%
add_osm_feature("amenity", "restaurant")
q2 <- getbb ("portsmouth", display_name_contains = "USA") %>%
opq () %>%
add_osm_feature("amenity", "pub")
c (osmdata_sf (q1), osmdata_sf (q2)) # all objects that are restaurants OR pubs
显然是用餐馆/酒吧代替了国家。我在连接数据库时遇到一些问题,但这是我可以找到的两个选择。