- Запрос
- Соответствующие классы и члены в API ref
- Как работает запрос
- Параметры запроса
- Результаты запроса
- Определить
- Определить геоэлементы и графику
- Соответствующие классы и члены в API ref
- Определить параметры
- Определить результаты
- Определить на других типах слоев
- Идентификация на групповых слоях
- Идентификация на слоях изображения карты
- Идентификация на растровых слоях
- Идентификация объектов в слое WMS
- Показать фильтры
Запрос
Запрос предоставляет возможность вернуть подмножество объектов из набора данных на основе любой комбинации атрибутивных, пространственных и временных (временных) критериев.
Вы также можете выполнять запросы, чтобы вернуть связанные объекты, количество объектов, экстент, содержащий все объекты, соответствующие вашим критериям, или статистическую информацию о наборе данных.
В этом разделе описывается выполнение запроса к набору данных (таблице объектов) для возврата подмножества объектов (или сводки) в результатах. ArcGIS Runtime также предоставляет запросы для поиска элементов, пользователей или групп на портале (например, ArcGIS Online). Дополнительную информацию см. в разделе Порталы организации ArcGIS.
Соответствующие классы и члены в API ref
- QueryParameters: определяет атрибутивные, пространственные и временные критерии для запроса. Он также имеет свойства для управления возвратом результатов.
- FeatureTable.queryFeaturesAsync(): использует критерии и предпочтения, определенные в QueryParameters, для возврата набора результатов.
- FeatureTable.queryFeatureCountAsync(): использует QueryParameters для возврата количества функций, соответствующих критериям запроса.
- FeatureTable.queryExtentAsync(): использует QueryParameters для возврата географического экстента объектов, соответствующих критериям запроса.
- FeatureTable.queryStatisticsAsync(): использует параметр StatisticsQueryParameters для возврата запрошенной статистики, описывающей функции в наборе данных.
- ArcGISFeatureTable.queryRelatedFeaturesAsync(): находит связанные объекты для указанного объекта в одном или всех отношениях, в которых он участвует.
Как работает запрос
Критерии запроса определяются с помощью объекта параметров запроса. Здесь вы указываете атрибут, пространственные и/или временные входные данные. Большинство запросов ArcGIS Runtime используют параметры запроса в качестве входных данных для определения критериев запроса, а такженекоторые предпочтения по результатам. Когда запрос выполняется для определенного набора данных (таблицы признаков), результаты возвращаются в виде набора признаков.
Запрос не требует определения каждого типа критериев. Критерии запроса оцениваются, только если они явно определены (например, отсутствие временных критериев означает, что результаты не фильтруются по времени).
Чтобы вернуть все объекты в наборе данных с помощью запроса, используйте выражение, которое всегда истинно, например «1=1», и оставьте пространственные и временные критерии неопределенными.
Параметры запроса
Параметры запроса определяют критерии запроса, используя:
- Выражение SQL для критериев атрибута
- Геометрия и пространственные отношения для пространственных критериев
- Дата/время или диапазон дат/времени для временных критериев
Некоторые пространственные отношения, которые вы можете определить для запроса, включают:
- Пересекается : часть объекта содержится в геометрии.
- Касание : элемент касается границы геометрии.
- Пересечения : элемент пересекает геометрию.
- Внутри : элемент полностью окружен геометрией.
- Содержит : часть или весь объект содержится в геометрии.
Не все пространственные отношения действительны для всех комбинаций геометрии.
Параметры запроса можно использовать в стандартном запросе для возврата объектов или в запросах, которые возвращают количество объектов или экстент. Вы также можете использовать параметры запроса, чтобы выбрать на карте объекты, соответствующие критериям.
Специализированные параметры запроса используются для запросов, которые возвращают статистику или связанные функции. В дополнение к критериям запроса эти параметры запроса определяют такие вещи, как тип возвращаемой статистики или отношения коценить.
В этом примере используются пространственные критерии для поиска объектов внутри полигона. Однако вместо выполнения запроса к FeatureTable параметры запроса просто передаются в FeatureLayer для отображения объектов, соответствующих критериям, в качестве нового выбора.
Результаты запроса
Результаты запроса обычно предоставляют набор функций. Вы можете итерировать объекты результатов, чтобы отобразить их на карте, прочитать их атрибуты и так далее. Запрос статистики возвращает набор записей, описывающих запрошенную статистику для объектов в наборе данных. Запросы количества объектов или экстента возвращают число и конверт соответственно.
Геометрию для результатов запроса можно вернуть в указанной пространственной привязке, указав выходную пространственную привязку в параметрах запроса. Если пространственная привязка не указана, результаты будут возвращены в пространственной привязке набора данных. Чаще всего вам понадобятся объекты результатов в той же пространственной привязке, что и карта вашего приложения.
Если вам не нужно использовать геометрию результатов (например, для отображения объектов), вы можете задать параметры запроса, чтобы исключить геометрию. Исключение геометрической части ваших результатов может значительно повысить производительность, особенно для результатов, которые включают несколько элементов или сложную геометрию.
Вы также можете установить максимальное количество функций, возвращаемых в результате. Это полезно в ситуациях, когда вам может понадобиться только подмножество функций, соответствующих вашим критериям. Это также может повысить производительность за счет ограничения объема информации, возвращаемой с результатом.
Определить
Идентификация похожа на ярлык для пространственного запроса. Он позволяет быстро ответить на вопрос: что здесь? Это дает пользователям быстрый способ исследовать и узнавать о карте или сцене.содержимое, нажав или щелкнув. Информация, возвращаемая операцией идентификации, может отображаться во всплывающих окнах или других компонентах пользовательского интерфейса в вашем приложении. В отличие от запроса, вы не можете указать критерий атрибута или времени для фильтрации результатов. Идентификация возвращает геоэлементы или графику в указанном месте.
Определить геоэлементы и графику
Вы можете идентифицировать геоэлементы из слоев или графику из графических наложений.
При идентификации на слоях значение свойства i s I dentif y E nabled должно быть истинным; в противном случае результаты идентификации не будут содержать геоэлементов для этого слоя, даже если геоэлементы есть в точке щелчка или касания.
Соответствующие классы и члены в API ref
Следующий API используется для идентификации объектов в слоях. Методы идентификации слоев определены в GeoView .
Следующий API используется для идентификации графики в графических наложениях. Идентифицирующие методы наложения графики определены в GeoView .
Определить параметры
Методы идентификации имеют очень похожие сигнатуры. Ниже приведены параметры, которые они могут принимать.
- screenPoint : место на экране, на которое нажал пользователь.
- допуск : радиус (в пикселях) круга с центром в точке экрана, в пределах которого можно идентифицировать геоэлементы или графику.
- returnPopupsOnly : true, чтобы идентифицировать только всплывающие окна. False, чтобы также идентифицировать геоэлементы или графику.
- maximumResults : максимальное количество возвращаемых геоэлементов или графики. Если вы используете одну из перегрузок метода идентификации, в которой этот параметр отсутствует, результат будет содержать только самый верхний видимый элемент для каждого идентифицированного слоя или графического наложения. Если вы выполняете идентификацию на групповом слое или слое изображения карты, этот параметр определяет ненулевое количество результатов наподслой. (См. разделы Идентификация на составных слоях и Идентификация на слоях изображения карты.)
Определить результаты
Результаты вызова одного из методов идентификации для определенного уровня или для всех слоев доступны в IdentificationLayerResult или наборе IdentLayerResult соответственно. Вы можете получить геоэлементы из результата идентификации слоя.
Результаты вызова одного из методов идентификации для определенного графического наложения или для всех графических наложений доступны вidentGraphicsOverlayResult или набореidentGraphicsOverlayResult соответственно. Вы можете получить графику из результата наложения идентификации графики.
Определить на других типах слоев
Несмотря на то, что любой уровень может быть идентифицирован, ниже приведены соображения для некоторых из них.
Идентификация на групповых слоях
Если вы хотите выполнить идентификацию группового слоя GroupLayer , вызовите метод идентификации layer и передайте групповой слой в качестве аргумента слоя. Идентификация работает со всеми дочерними слоями составного слоя. Этот метод возвращает для группового слоя объект IdentLayerResult, но в результате нет геоэлементов для группового слоя. Вместо этого вы должны получить доступ к результатам для дочерних слоев, используя свойство результатов подслоя в IdentLayerResult. Свойство результатов подслоя представляет собой наборidentLayerResult , по одному для каждого дочернего слоя.
Если вы хотите выполнить идентификацию всех слоев, некоторые из которых являются составными слоями, вызовите метод идентификации слоев . Возвращаемая коллекция не содержит результата идентификации слоя для составного слоя, но содержит результат идентификации слоя для каждого из его дочерних слоев. По сути, это поведение рассматривает дочерние слои как независимые слои и в противном случае игнорирует групповые слои.
При вызове идентифицируйте методы, которые принимаютmaximum Results, это значение определяет ненулевое количество объектов, возвращаемых на подуровень. См. раздел Определение параметров.
Идентификация на слоях изображения карты
Вы можете использовать метод определения слоев для идентификации по слоям изображения карты и мозаичным слоям карты. Выполните итерацию по коллекции результатов и используйте свойство содержимого слоя IdentLayerResult, чтобы проверить, является ли LayerContent ArcGISMapImageLayer или ArcGISMapImageSublayer .
Следующие пункты применяются при идентификации по слоям изображения карты:
- Результаты возвращаются в виде признаков; однако, в отличие от других функций, они не будут иметь ссылки на FeatureTable.
- Слои изображения карты могут иметь один или несколько подслоев. Идентификация результатов из слоев изображения карты отражает эту структуру и возвращает результаты для каждого подслоя отдельно. (Обратите внимание, что если вы указали максимальное количество возвращаемых результатов, это значение применяется к каждому подслою.)
Идентификация на растровых слоях
Идентификация на растровых слоях возвращает значение RasterCell для выбранного местоположения в MapView или SceneView. Идентифицированный RasterLayer может быть локальным на устройстве или из слоя веб-сервиса, размещенного в ArcGIS Online или ArcGIS Enterprise. Идентификация возвращает значения растровых ячеек для отображения в простой выноске или, если для растрового слоя настроено всплывающее окно, информация может отображаться в форматированном пользовательском интерфейсе.
Для мозаичных изображений правило мозаики определяет, как объединяются отдельные растры. При идентификации изображений, составленных из коллекции изображений, значения, возвращаемые функцией идентификации, могут различаться в зависимости от настроек правила мозаики. Вы можете использовать правило по умолчанию, определенное сервисом, или, начиная с версии 100.9.0, определить параметры правила, чтобы контролировать, как обрабатываются перекрывающиеся области в мозаике. Правила рендеринга, применяемые крастровый слой на клиенте, а также информация из атрибутивных таблиц (если они есть) также будут представлены в результатах идентификации.
Идентификация объектов в слое WMS
Слои WMS отличаются от других слоев тем, что они не поддерживают возврат отдельных атрибутов или геометрии объекта. Службы WMS выполняют идентификацию на сервере и возвращают HTML-документы с описанием идентифицированных функций. Каждая функция будет WmsFeature , что позволит вам получить доступ к возвращаемой строке HTML-документа. Используйте свойство атрибутов объекта, чтобы получить словарь атрибутов, а затем найдите атрибут с ключом HTML . Значение представляет собой строку HTML, подходящую для отображения в веб-представлении.
Невозможно получить геометрию для идентифицированного (или любого другого) объекта WMS. Геометрия идентифицированного объекта WMS всегда будет нулевой. Следовательно, слои WMS не поддерживают выбор/выделение объектов.
Показать фильтры
Фильтры отображения ограничивают количество отображаемых объектов, чтобы уменьшить беспорядок на карте или в сцене. Используйте FeatureLayer.setDisplayFilterDefinition, если вы хотите нарисовать подмножество объектов, сохраняя при этом доступ ко всем из них. В отличие от определяющего выражения, объекты, скрытые фильтром отображения, доступны для выбора, идентификации, редактирования и операций геообработки.
Фильтры отображения можно добавлять к картам и сценам, созданным с помощью ArcGIS Runtime, или публиковать на веб-картах с помощью ArcGIS Pro 2.9 или более поздней версии.