Spec-Zone.ru › Qt 5.11

Тип QML PlaceSearchModel

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

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

Свойства

  • categories : список<Category>
  • count : int
  • favoritesMatchParameters : VariantMap
  • favoritesPlugin : Plugin
  • limit : int
  • nextPagesAvailable : bool
  • plugin : Plugin
  • previousPagesAvailable : bool
  • recommendationId : строка
  • relevanceHint : перечисление
  • searchArea : значение
  • searchTerm : строка
  • status : перечисление
  • visibilityScope : перечисление

Методы

  • void cancel()
  • Значение data(int index, строка role)
  • строка errorString()
  • void nextPage()
  • void previousPage()
  • void reset()
  • void update()
  • void updateWith(int 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], и предполагается, что показана первая страница и установлен лимит 3, тогда возвращаются a,b,c. Метод nextPage() вернет d,e. Свойства nextPagesAvailable и previousPagesAvailable могут использоваться для проверки наличия дополнительных страниц. В настоящее время API не поддерживает способ получения общего количества элементов, доступных из бэкенда. Обратите внимание, что поддержка nextPage(), previousPage() и limit может варьироваться в зависимости от plugin.

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

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

categories : список<Category>

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

count : int

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

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

favoritesMatchParameters : VariantMap

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

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

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

favoritesPlugin : Plugin

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

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

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

limit : int

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

nextPagesAvailable : bool

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

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

plugin : Plugin

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

previousPagesAvailable : bool

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

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

recommendationId : string

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

relevanceHint : перечисление

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

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

searchArea : variant

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

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

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

searchTerm : string

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

status : перечисление

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

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

visibilityScope : перечисление

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

Область видимости может быть следующей:

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

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

void cancel()

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

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

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

Variant data(int index, string role)

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

string errorString()

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

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

void nextPage()

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

void previousPage()

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

void reset()

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

void update()

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

Пока модель обновляется, статус модели установлен в PlaceSearchModel.Loading. Если модель успешно обновлена, статус устанавливается в PlaceSearchModel.Ready, в то время как при неудачном завершении статус устанавливается в 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(int 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/archives/qt-5.11/qml-qtlocation-placesearchmodel.html

Spec-Zone.ru

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