Spec-Zone.ru › Qt 5.6

Тип QML PlaceSearchModel

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

Оператор импорта: import QtLocation 5.3
С момента: Qt Location 5.5
  • Список всех членов, включая унаследованные

Свойства

  • categories : list<Category>
  • count : int
  • favoritesMatchParameters : VariantMap
  • favoritesPlugin : Plugin
  • limit : int
  • nextPagesAvailable : bool
  • plugin : Plugin
  • previousPagesAvailable : bool
  • recommendationId : string
  • relevanceHint : перечисление
  • searchArea : variant
  • searchTerm : string
  • status : перечисление
  • visibilityScope : перечисление

Методы

  • void cancel()
  • void data(int index, string role)
  • string 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.

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

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

favoritesPlugin : Plugin

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

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

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

limit : int

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

nextPagesAvailable : bool

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

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

plugin : Plugin

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

previousPagesAvailable : bool

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

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

recommendationId : string

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

relevanceHint : enumeration

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

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

searchArea : variant

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

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

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

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.

void data(int index, string role)

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

string errorString() const

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

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

void nextPage()

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

void previousPage()

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

void reset()

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

void update()

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

Пока модель обновляется, состояние модели 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(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.6/qml-qtlocation-placesearchmodel.html

Spec-Zone.ru

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