我无法通过包文档arcpullr.html来理解这一点。
我的代码返回下面描述的错误。
library(arcpullr)
url <- "https://arcgis.deq.state.or.us/arcgis/rest/services/WQ/WBD/MapServer/1"
huc8_1 <- get_spatial_layer(url)
huc8_2 <- get_layer_by_poly(url,geometry = "esriGeometryPolygon")huc8_1:
if (layer_info$type ==“组层”)中的错误{:参数长度为零
huc8_2:
Get_sf_crs(几何学)中的错误:% class(sf_obj)中的"sf“%不是真
如果您能提供任何帮助来解释错误并提出任何解决方案,我们将不胜感激。谢谢!
发布于 2021-10-31 20:29:55
我没有使用arcpullr包。将leaflet.esri::addEsriFeatureLayer与where子句结合使用是可行的。
作为一个例子,见下面的相关代码:
leaflet.esri::addEsriFeatureLayer(
url="https://arcgis.deq.state.or.us/arcgis/rest/services/WQ/IR_201820_byParameter/MapServer/2",
options = leaflet.esri::featureLayerOptions(where = IR_where_huc12)
)发布于 2021-12-07 21:04:46
您必须将一个sf对象作为第二个参数传递给任何get_layer_by_*函数。对于空间查询,我使用点而不是多边形(因为创建起来更容易)稍微修改了一下示例,但是get_layer_by_poly的工作方式与使用sf多边形而不是点的方式相同。此外,您使用的服务需要一个令牌。我将url改为USGS HU 6位数字盆地
library(arcpullr)
url <- "https://hydro.nationalmap.gov/arcgis/rest/services/wbd/MapServer/3"
query_pt <- sf_point(c(-90, 45))
# this would query everything in the feature layer, which may or may not be huge
# huc8_1 <- get_spatial_layer(url)
huc8_2 <- get_layer_by_point(url, query_pt)
huc_map <- plot_layer(huc8_2)
huc_map
huc_map + ggplot2::geom_sf(data = query_pt)https://stackoverflow.com/questions/66928439
复制相似问题