uniquerValues ​​- представление требуется для запроса статистики из layerView "и feature-layer-adaptor: Proper-Data - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь использовать функцию uniqueValues ​​ из ESRI ArcGIS for JavaScript 4.10.

Тем не менее, это сообщение об ошибке:

сообщение: «требуется запрос для просмотра статистики из layerView» имя: "Особенность слой-адаптер: недостаточные-данные"

У меня есть FeatureLayer с функциями и полем с именем sStatus. У меня также есть настройка Legend, которая прекрасно работает с UniqueValueRenderer на основе этого поля sStatus.

Это мой код:

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", сообщение об ошибке в консоли изменится:

сообщение: «Неизвестные поля: статус. Вы можете использовать только поля, определенные в схема слоя "имя:" уникальные значения: недопустимые параметры "

Это показывает, что мое поле sStatus правильно, но я не понимаю, почему оно не работает из коробки.

Есть идеи, почему это не удается?

1 Ответ

0 голосов
/ 24 января 2019

После того, как я отправил вопрос, я получил ответ, перечитав uniqueValues функцию документацию .

Во-первых, сообщение было ясным: в нем отсутствовал вид.

Для функции uniqueValues есть параметр view, который не был частью образца кода ...

представление Просмотр необязательно

A SceneView илиЭкземпляр MapView требуется, когда указано значениеExexression.

Итак, мне нужно было сделать следующее:

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);
...