gis - 在 Arcade Expression 中使用 GeoJSON 服务
问题描述
我正在尝试使用 ArcGIS Javascript API 在地图中使用带有 GeoJSON 服务的 Arcade 表达式。Arcade 表达式的目的是返回与用户单击的县相交的湖泊数。湖泊和县多边形都是 GeoJSON 服务。将湖泊 GeoJSON 服务替换为 ArcGIS 要素图层服务会导致表达式正常运行,并返回与县 GeoJSON 服务相交的湖泊计数。
var template = {
title: "{LABEL}",
content: "{expression/countyInfo}",
expressionInfos: [
{
name: "countyInfo",
title: "Marker Info",
expression: `
var lake = FeatureSetByName($map, 'Lakes');
var lakeIntersect = Intersects(lake, $feature);
var cnt = Count(lakeIntersect);
return \`
Number of lakes: \${Text(cnt, "####")}
\`
`
}
]
};
我尝试将 FeatureSetByName 函数中的 $map 全局变量更改为其他全局变量选项($datastore、$feature、$layer),但没有成功。
有没有人成功地从 GeoJSON 服务创建 FeatureSet?你是怎么申报的?
编辑
代码可以在这里找到
解决方案
检索FeatureSet
like的方法FeatureSetByName
仅适用于FeatureLayer
我没有错的情况。在这方面,您将无法使用GeoJSONLayer
.
关于FeatureSetByName
在 ArcGIS 文档中
根据地图或要素服务中的名称从要素图层创建要素集。
ArcGIS Arcade - FeatureSetByName
您可以尝试创建FeatureSet
,构造函数将 GeoJSON 作为参数。然后FeatureSet
在脚本中使用它。
另一种选择是检索 GeoJSON 并使用它来创建一个FeatureLayer
.
推荐阅读
- javascript - 清除搜索输入时将建议附加到搜索框
- clojure - S 无法解决。克洛朱尔。草书
- python - 如何在自动化网站的同时保持登录
- javascript - 基于活动单元格突出显示行但不应删除背景颜色
- c# - C# - 同步调用 C DLL 函数
- python - Django Form is_valid() 与 python3 不兼容
- php - 使用 TCPDF 和 buttonImportIcon() 以 PDF 格式上传图像
- c - C:使用指针从不同函数更新 main 中的变量时出现问题
- verilog - Verilog中的组合电路使用assign和always块有什么区别?
- python - Pydantic - 将对象升级到另一个模型