Spec-Zone.ru › Qt 5.14

Тип QML PlaceSearchModel

Обеспечивает доступ к результатам поиска мест. Подробнее...

Заявление об импорте: import QtLocation 5.14
С момента: QtLocation 5.5
  • Список всех членов, включая унаследованные члены

Свойства

  • categories : список<Категория>
  • count : int
  • favoritesMatchParameters : VariantMap
  • favoritesPlugin : Плагин
  • incremental : bool
  • limit : int
  • nextPagesAvailable : bool
  • plugin : Плагин
  • previousPagesAvailable : bool
  • recommendationId : строка
  • relevanceHint : перечисление
  • searchArea : вариант
  • searchTerm : строка
  • status : перечисление
  • visibilityScope : перечисление

Методы

  • void cancel()
  • Вариант data(index, строка role)
  • строка errorString()
  • void nextPage()
  • void previousPage()
  • void reset()
  • void update()
  • void updateWith(proposedSearchIndex)

Подробное описание

PlaceSearchModel предоставляет модель результатов поиска мест в рамках searchArea. Свойства searchTerm и categories можно установить для ограничения результатов поиска местами, соответствующими этим критериям.

PlaceSearchModel возвращает как спонсируемые, так и органические результаты поиска. У спонсируемых результатов поиска будет установлено значение роли sponsored в true.

Модель возвращает данные для следующих ролей:

Роль Тип Описание
type перечисление Тип результата поиска.
title строка Строка, описывающая результат поиска.
icon PlaceIcon Значок, представляющий результат поиска.
distance вещественное Действительно только когда роль type равна PlaceResult, расстояние до места от центра searchArea. Если searchArea не указан, расстояние равно NaN.
place Place Действительно только когда роль type равна PlaceResult, объект, представляющий место.
sponsored bool Действительно только когда роль type равна PlaceResult, true, если результат поиска является спонсируемым.

Типы результатов поиска

Роль type может принимать следующие значения:

PlaceSearchModel.UnknownSearchResult Содержание результата поиска неизвестно.
PlaceSearchModel.PlaceResult Результат поиска содержит место.
PlaceSearchModel.ProposedSearchResult Результат поиска содержит предложенный поиск, который может быть релевантным.

Иногда полезно использовать Loader для создания делегата, который будет выбирать различные Component в зависимости от типа результата поиска.

Component {
    id: resultDelegate
    Loader {
        Component {
            id: placeResult

            Column {
                Text { text: title }
                Text { text: place.location.address.text }
            }
        }

        Component {
            id: otherResult
            Text { text: title }
        }

        sourceComponent: type == PlaceSearchModel.PlaceResult ? placeResult :
                                                                otherResult
    }
}

Обнаружение обновленных и удаленных мест

PlaceSearchModel отслеживает места, которые были обновлены или удалены из бэкэнда своего плагина. Если он обнаруживает, что место было обновлено и это место в настоящее время присутствует в модели, то он вызовет Place::getDetails для обновления деталей. Если он обнаруживает, что место было удалено, соответствующее место будет удалено из модели, если оно присутствует.

Пример

В следующем примере показано, как использовать PlaceSearchModel для поиска пиццерий поблизости от заданного местоположения. Модели предоставляются searchTerm и searchArea, а update() используется для выполнения запроса поиска. Обратите внимание, что модель не осуществляет инкрементальную выборку результатов поиска, а выполняет однократный запрос при выполнении update(). count устанавливается в количество результатов поиска, возвращенных во время выборки.

import QtQuick 2.0
import QtPositioning 5.5
import QtLocation 5.6

PlaceSearchModel {
    id: searchModel

    plugin: myPlugin

    searchTerm: "pizza"
    searchArea: QtPositioning.circle(startCoordinate);

    Component.onCompleted: update()

}

Пейджинг

API PlaceSearchModel имеет ограниченную поддержку пейджинга. Функции nextPage() и previousPage(), а также свойство limit, могут использоваться для доступа к результатам поиска, разделенным на страницы. Когда свойство limit установлено, страница результатов поиска содержит не более limit записей (типа результата поиска места). Например, если бэкэнд содержит 5 результатов поиска в целом [a, b, c, d, e], и предполагается, что показана первая страница, и установлено значение limit 3, то возвращаются a, b, c. nextPage() вернет d, e. Свойства nextPagesAvailable и previousPagesAvailable могут использоваться для проверки наличия других страниц. В настоящее время API не поддерживает получение общего количества элементов, доступных из бэкэнда. Обратите внимание, что поддержка nextPage(), previousPage() и limit может различаться в зависимости от plugin.

См. также CategoryModel и QPlaceManager.

Документация по свойствам

categories : список<Категория>

Это свойство содержит список категорий, которые будут использоваться при поиске. Возвращаемые результаты поиска будут относиться к местам, соответствующим хотя бы одной из категорий.

count : int

Это свойство содержит количество результатов.

Обратите внимание, что оно не относится к общему количеству результатов поиска, доступных в бэкэнде. Общее количество результатов поиска в настоящее время не поддерживается API.

favoritesMatchParameters : VariantMap

Это свойство содержит набор параметров, используемых для указания того, как места результатов поиска сопоставляются с избранными в favoritesPlugin.

По умолчанию карта параметров пустая, что подразумевает, что плагин избранных сопоставляет по альтернативным идентификаторам. Обычно разработчику приложения не нужно устанавливать это свойство.

В случаях, когда плагин избранных не поддерживает сопоставление по альтернативным идентификаторам, следует обратиться к документации плагина, чтобы точно узнать, какие пары «ключ-значение» установить.

favoritesPlugin : Плагин

Это свойство содержит Плагин, который будет использоваться для поиска избранных. Все места из поиска, которые могут быть перекрестно сопоставлены или сопоставлены в favoritesPlugin, будут иметь свойство favorite, установленное в соответствующем Place из favoritesPlugin.

Если favoritesPlugin не установлен, свойство favorite мест в результатах всегда будет null.

См. также Избранное.

incremental : bool

Это свойство управляет тем, как постраничная навигация повлияет на PlaceSearchModel. Если значение истинно, вызов previousPage или nextPage не сбросит модель, а вместо этого новые результаты будут добавлены к модели. По умолчанию значение ложно.

Это свойство было добавлено в QtLocation 5.12.

limit : int

Это свойство содержит ограничение на количество возвращаемых элементов.

nextPagesAvailable : bool

Это свойство указывает, доступны ли одна или несколько дополнительных страниц результатов поиска.

См. также nextPage().

plugin : Plugin

Это свойство содержит Plugin, который будет использоваться для выполнения поиска.

previousPagesAvailable : bool

Это свойство указывает, доступны ли одна или несколько предыдущих страниц результатов поиска.

См. также previousPage().

recommendationId : string

Это свойство содержит placeId, который будет использоваться для поиска рекомендаций по похожим местам.

relevanceHint : enumeration

Это свойство содержит подсказку релевантности, используемую в запросе поиска. Подсказка предоставляется поставщику для помощи, но не для диктовки ранжирования результатов. Например, подсказка по расстоянию может присвоить местам, которые ближе к текущему местоположению пользователя, более высокий рейтинг, но это не обязательно означает, что результаты будут строго упорядочены по расстоянию. Поставщик может вообще проигнорировать подсказку.

SearchResultModel.UnspecifiedHint Поставщику не предоставляется подсказка релевантности.
SearchResultModel.DistanceHint Расстояние места от текущего местоположения пользователя важно для пользователя. Эта подсказка имеет смысл только при использовании круговой области поиска.
SearchResultModel.LexicalPlaceNameHint Лексическая сортировка названий мест (в алфавитном порядке) важна для пользователя. Эта подсказка полезна для поставщиков, основанных на локальном хранилище данных.

searchArea : variant

Это свойство содержит область поиска. Результаты поиска, возвращаемые моделью, будут находиться в области поиска.

Если это свойство установлено в geocircle, его свойство radius может быть не задано, в этом случае Plugin выберет подходящий радиус для поиска.

Поддержка указания области поиска может различаться в зависимости от реализации бэкенда plugin. Например, некоторые могут поддерживать только центр поиска, в то время как другие могут поддерживать только геопрямоугольники.

searchTerm : string

Это свойство содержит поисковый запрос, используемый в запросе. Поисковый запрос — это текстовая строка произвольной формы.

status : enum

Это свойство содержит статус модели. Оно может быть одним из:

PlaceSearchModel.Null Запрос поиска не выполнялся. Модель пуста.
PlaceSearchModel.Ready Запрос поиска завершен, и результаты доступны.
PlaceSearchModel.Loading В настоящее время выполняется запрос поиска.
PlaceSearchModel.Error При выполнении предыдущего запроса поиска произошла ошибка.

visibilityScope : enum

Это свойство содержит область видимости мест для поиска. В результатах поиска будут возвращаться только места с указанной видимостью.

Область видимости может быть одной из:

Place.UnspecifiedVisibility Явно не указана область видимости; места с любой видимостью могут быть частью результатов поиска.
Place.DeviceVisibility В результатах поиска будут только места, хранящиеся на локальном устройстве.
Place.PrivateVisibility В результатах поиска будут только места, которые являются частными для текущего пользователя.
Place.PublicVisibility В результатах поиска будут только общедоступные места.

Документация по методам

void cancel()

Немедленно отменяет текущую операцию поиска и устанавливает статус модели в PlaceSearchModel.Ready. Модель сохраняет любые результаты поиска, которые были у нее до начала операции.

Если операция не выполняется, вызов cancel() не оказывает никакого эффекта.

См. также update() и status.

Variant data(index, string role)

Возвращает данные для заданного role в указанной строке index.

string errorString()

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

Пустая строка также может быть возвращена, если произошла ошибка, для которой нет связанного текстового представления.

void nextPage()

Обновляет модель, чтобы отобразить следующую страницу результатов поиска. Если следующей страницы нет, этот метод ничего не делает.

void previousPage()

Обновляет модель, чтобы отобразить предыдущую страницу результатов поиска. Если предыдущей страницы нет, этот метод ничего не делает.

void reset()

Сбрасывает модель. Все результаты поиска очищаются, любые незавершенные запросы прерываются, и возможные ошибки очищаются. Статус модели будет установлен в PlaceSearchModel.Null.

void update()

Обновляет модель на основе предоставленных параметров запроса. Модель будет заполнена списком мест, соответствующих параметрам поиска, указанным в свойствах типа. Критерии поиска задаются путем установки свойств, таких как searchTerm, categories, searchArea и limit. Поддержка этих свойств может различаться в зависимости от plugin. update() затем отправляет набор критериев в plugin для обработки.

Пока модель обновляется, status модели устанавливается в PlaceSearchModel.Loading. Если модель успешно обновлена, status устанавливается в PlaceSearchModel.Ready, в то время как если обновление завершается неудачно, status устанавливается в PlaceSearchModel.Error и модель очищается.

PlaceSearchModel {
    id: model
    plugin: backendPlugin
    searchArea: QtPositioning.circle(QtPositioning.coordinate(10, 10))
    ...
}

MouseArea {
    ...
    onClicked: {
        model.searchTerm = "pizza";
        model.categories = null;  //not searching by any category
        model.searchArea.center.latitude = -27.5;
        model.searchArea.center.longitude = 153;
        model.update();
    }
}

См. также cancel() и status.

void updateWith(proposedSearchIndex)

Обновляет модель на основе ProposedSearchResult с индексом proposedSearchIndex. Модель будет заполнена списком мест, соответствующих предложенному поиску. Статус модели будет установлен в PlaceSearchModel.Loading. Если модель успешно обновлена, статус будет установлен в PlaceSearchModel.Ready. Если произошла ошибка, статус будет установлен в PlaceSearchModel.Error, и модель будет очищена.

Если proposedSearchIndex не ссылается на ProposedSearchResult, этот метод ничего не делает.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtlocation-placesearchmodel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API