Spec-Zone.ru › Qt 5.13

Тип QML PlaceSearchModel

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

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

Свойства

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

Методы

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

}

Стрaничнoвaниe

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 : целое

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

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

favoritesMatchParameters : VariantMap

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

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

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

favoritesPlugin : Плагин

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

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

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

incremental : bool

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

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

limit : int

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

nextPagesAvailable : bool

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

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

plugin : Plugin

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

previousPagesAvailable : bool

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

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

recommendationId : string

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

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

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

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

searchArea : variant

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

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

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

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(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.13/qml-qtlocation-placesearchmodel.html

Spec-Zone.ru

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