如何解决如何从空间特征中检索 osmdata 的 bbox?
如何定义bbox根据空间文件的范围下载OSM数据? 以下示例返回错误消息:
...唯一允许的值是介于 -90.0 和 90.0 之间的浮点数
这表明 bbox 值超出了允许的范围。它还表明 NAD27 和 EPSG:3857 之间的转换没有在它应该在的地方返回空间数据。 对于其他空间数据,我遇到了类似的问题。即使在允许的范围内,数据也没有出现在预期的位置。下载的 OSM 数据出现在与输入空间文件不同的位置。
library(sf)
library(raster)
library(osmdata)
osm_proj <-("+init=epsg:3857")
nc <- st_read(system.file("shape/nc.shp",package="sf"))
nc <- st_transform(nc,osm_proj)
bbox.nc <- as.vector(extent(nc[22,]))/100000
q <- opq(bbox = bbox.nc) %>%
add_osm_feature(key = 'natural',value = 'water')
osm.water <- osmdata_sf(q)
如何准备下载 OSM 数据的 bbox 与输入空间文件的空间扩展相匹配?
解决方法
OSM 在 lat-lon 中工作,这意味着 EPSG:4326。您需要相应地转换坐标。你也不需要 longName
; raster::extent()
在这个用例中就足够了。
或者在您的上下文中考虑此代码;因为这只是一个玩具示例,所以我没有使用整个 NC 州,而是一个县(否则可能会出现超时错误,这将是一种单独的问题 - 这个问题是关于边界框的)。
sf::st_bbox()
一个无耻的插件:不久前我写过关于查询 OSM 的兴趣点的文章,你可能会发现这篇文章很有趣:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。