Предполагаемый эффект
Когда пользователь щелкает полигональный объект (округ, регион или район/муниципалитет) или использует виджет «Рисование», на карточке панели мониторинга отображается количество пересеченных точечных объектов, возвращенных queryFeatures()
(см. ниже).
localitiesLayer.queryFeatures(query).then(function(results) {
var queriedLocalities = results.features;
if (queriedLocalities.length > 0) {
var fossilsFound = queriedLocalities.length;
}
}
Проблема
Максимальное количество возвращенных пересекающихся объектов равно 2000, даже если выбрано более 2000 точечных объектов.
На фото ниже всего 2000 местонахождений окаменелостей в этом районе! когда должно быть возвращено более 3000 функций.
Поиск проблемы
Исправлена проблема, когда вместо запроса к векторному слою localitiesLayer запрашивался представление векторного слоя. Это приводит к неразрешимой проблеме, связанной с тем, что количество мест, возвращаемых queryFeatures
, изменяется в зависимости от уровня масштабирования (как подробно описано в Справочник по API для queryFeatures FeatureLayerView).
Поскольку кажется, что я застрял, используя запрос на стороне сервера, мне нужно понять, почему это происходит с таким, казалось бы, произвольным числом.
Сначала я подумал, что это связано с возможными проблемами топологии между объектами, но почему это повлияет на полигон, созданный виджетом Draw? Прежде чем написать этот вопрос, я также запустил инструмент интеграции на всех слоях объектов, чтобы убедиться, что нет никаких несовпадающих полигонов.
Вопрос
Почему верхний предел объектов, возвращаемый queryFeatures()
на localitiesLayer
2000, даже если более 2000 точечных объектов пересекаются с выбранным полигоном?
Почему запрос с представлением векторного слоя решает эту проблему (хотя, как описано выше, это не является допустимым решением этой проблемы)?