首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用arcpullr::get_spatial_layer()和arcpullr::get_layer_by_poly()

如何使用arcpullr::get_spatial_layer()和arcpullr::get_layer_by_poly()
EN

Stack Overflow用户
提问于 2021-04-03 06:44:13
回答 2查看 149关注 0票数 0

我无法通过包文档arcpullr.html来理解这一点。

我的代码返回下面描述的错误。

代码语言:javascript
复制
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“%不是真

如果您能提供任何帮助来解释错误并提出任何解决方案,我们将不胜感激。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-31 20:29:55

我没有使用arcpullr包。将leaflet.esri::addEsriFeatureLayerwhere子句结合使用是可行的。

作为一个例子,见下面的相关代码:

代码语言:javascript
复制
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)
)
票数 1
EN

Stack Overflow用户

发布于 2021-12-07 21:04:46

您必须将一个sf对象作为第二个参数传递给任何get_layer_by_*函数。对于空间查询,我使用点而不是多边形(因为创建起来更容易)稍微修改了一下示例,但是get_layer_by_poly的工作方式与使用sf多边形而不是点的方式相同。此外,您使用的服务需要一个令牌。我将url改为USGS HU 6位数字盆地

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66928439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档