Шаблоны запроса к векторному веб-слою

Запросы к данным в векторных веб-слоях выполняются либо с помощью запросов на основе страниц, либо с помощью запросов на основе листов.

Запросы на основе страниц

В ArcGIS Pro большинство запросов, используемых при графической визуализации и редактировании, выполняется с помощью запроса на основе страниц; такой метод также называют разбиением на страницы. Суть этого приема заключается в том, что запрашиваются поднаборы данных, то есть страницы, а не все данные в рамках одного запроса. Используя эти страницы, можно отправлять и возвращать небольшие запросы в разумные сроки, что улучшает скорость отклика приложения и повышает удобство пользовательского интерфейса.

Размер страниц зависит от информации метаданных, связанных с сервисом объектов. Используемые свойства: standardMaxRecordCount и maxRecordCount, причем большее из двух свойств определяет размер страницы. Затем это значение используется с параметром resultRecordCount в процессе выполнения запросов.

По мере заполнения страниц в отклики на запросы будет добавляться свойство exceededTransferLimit. Если в отклике параметр exceededTransferLimit имеет значение true, это говорит о том, что доступно больше записей, и будут запрошены дополнительные страницы. Эти запросы будут продолжаться до тех пор, пока exceededTransferLimit не получит значение false, или это свойство не будет отсутствовать в ответе на запрос.

Страницы используют значение resultOffset для определения начальной записи для каждой страницы. По мере того, как запрашиваются дополнительные страницы, значение resultOffset увеличивается и используется для указания количества пропущенных записей, а также следующей записи, с которой должна начинаться страница (resultOffset + 1). Например, если для размера страницы задано значение 2000, то второй запрос страницы будет иметь значение resultOffset, равное 2000, и эта страница будет включать следующие доступные 2000 записей для заполнения страницы.

Для получения дополнительной информации см. Запрос (Картографический сервис/слой карты).

Примечание:

Если параметры resultOffset и resultRecordCount не используются, в результаты запроса также может быть включено свойство exceededTransferLimit. В таком случае это свойство будет иметь значение true только, если количество записей превысит значение maxRecordCount, настроенное администратором сервера.

Запросы на основе листов

При использовании запросов на основе листов экстент карты делится на листы, которые используются для отображения объектов на карте. Это также включает кэширование листов на сервере, чтобы их можно было вернуть вместо того, чтобы серверу приходилось пересчитывать отображение карты. Чтобы использовать запросы на основе листов, свойство supportsQueryWithCacheHint у слоя сервиса должно иметь значение true. Это позволяет выполнять запрос с использованием параметра cacheHint, который указывает, должен ли сервис создавать кэш результатов запроса.

Запрос выполняется посредством схемы разбиения на листы, которая создает несколько уровней детализации, связанных с различными масштабами карты. Используемый начальный уровень детализации зависит от масштаба карты при загрузке данных. Листы с этим начальным уровнем детализации будут использоваться до тех пор, пока внутри листа не окажется слишком много объектов. Если в листе слишком много объектов, этот лист переходит на следующий уровень и создает запрос. При необходимости эти уровни могут быть понижены в общей сложности три раза от начального уровня детализации. По мере получения ответов листы кэшируются. Хотя запросы на основе листов создают большее число запросов к серверу, эти запросы являются относительно простыми и используют кэшированные листы, что по-прежнему обеспечивает оптимальную производительность.

Примечание:

Если на листе грида отображается слишком много объектов, чтобы можно было вернуть их в одном запросе, появится уведомление о необходимости увеличить масштаб, чтобы отображалась область меньшего размера.

Установка диапазона видимых масштабов для слоев может свести к минимуму появление таких уведомлений.

Подробнее см. в Векторный слой.

Связанные разделы