Как указать слой для поиска в методе viewer.search ()? - PullRequest
0 голосов
/ 25 октября 2019

Мне нужно указать слой, в котором нужно найти идентификатор, чтобы поиск не проводился по многим слоям модели. я могу добавить аргумент с именем слоя? Может быть, как это [attributeName, layerName]?

viewer.search('"' + i['displayValue'] + '"', function(dbIds) {
    getSubset(dbIds, "MEASUREDLENGTH", i['displayValue'], function(propsObj) {
        obj.push({
            type: "LineString",
            properties: propsObj,
            geometry: {
                type: "LineString",
                coordinates: returnShortLine(extractPath(viewer, j)),
            }
        });
    })
}, function(error) {}, ["MEASUREDLENGTH", ???layer???]);

1 Ответ

0 голосов
/ 29 октября 2019

Если возможно, попробуйте ввести имена атрибутов для поиска, чтобы отфильтровать результаты по слою - search(text, onSuccessCallback, onErrorCallback, attributeNames):

viewer.search(text, onSuccessCallback, onErrorCallback, ['attributeName', 'attributeName' ...])

Поскольку поиск выполняется непосредственно по базе данных свойств, трудно применить фильтры / условия илиизмените его поведение, расширив Viewer - я бы рекомендовал отфильтровать результаты (прочитать их свойства, чтобы определить их слои и т. д.), чтобы получить желаемый результат.

В качестве альтернативы вы можете напрямую запросить свойство db - см. здесь и здесь .

...