uniquerValues - 需要视图才能从 layerView 和 feature-layer-adapter:insufficient-data 查询统计信息

uniquerValues - view is required to query stats from layerView" and feature-layer-adapter:insufficient-data

我正在尝试为 JavaScript 4.10 使用来自 ESRI ArcGIS 的 uniqueValues 函数。

但是,它失败并显示以下消息:

message: "view is required to query stats from layerView" name: "feature-layer-adapter:insufficient-data"

我有一个 FeatureLayer 具有特征和一个名为 sStatus 的字段。我还有一个 Legend 设置,它与基于此 sStatus 字段的 UniqueValueRenderer 一起工作得很好。

这是我的代码:

uniqueValues({
    layer: layer,
    field: "sStatus"
}).then(function (response) {
    // prints each unique value and the count of features containing that value
    var infos = response.uniqueValueInfos;

    console.log('test');

    infos.forEach(function (info) {

        console.log("Wells : ", info.value, " # of Wells ", info.count);
    });
}).catch(errback);

注意:如果我将字段名称更改为“status”,控制台中的错误消息会更改:

message: "Unknown fields: status. You can only use fields defined in the layer schema" name: "unique-values:invalid-parameters"

这表明我的字段 sStatus 是正确的,但我不明白为什么它不能开箱即用。

知道为什么会失败吗?

发布问题后,我通过重新阅读 uniqueValues 函数 documentation 得到了答案。

消息一开始就很清楚:它缺少视图。

uniqueValues 函数有一个 view 参数,它不是示例代码的一部分...

view View optional

A SceneView or MapView instance is required when a valueExpression is specified.

所以我要做的是:

niqueValues({
    layer: layer,
    field: "sStatus",
    view: mapView
}).then(function (response) {
    // prints each unique value and the count of features containing that value
    var infos = response.uniqueValueInfos;

    console.log('test');

    infos.forEach(function (info) {

        console.log("Wells : ", info.value, " # of Wells ", info.count);
    });
}).catch(errback);