Подключаемый модуль Qt Location HERE
Обзор
В Qt Location включён плагин геосервисов, который обращается к соответствующим сервисам HERE, предоставляемым HERE/Nokia. Использование этих сервисов регулируется условиями использования, доступными по адресу https://developer.here.com/terms-conditions.
Обратите внимание, что принятие условий использования применяется только к плагину геосервисов HERE и не ограничивает использование других плагинов геосервисов, которые могут быть включены в Qt.
Плагин геосервисов HERE можно загрузить, используя ключ плагина «here».
Онлайн-плагин использует классы плиточных карт, которые кэшируют данные плиток в оперативной памяти и памяти текстур.
Параметры
Обязательные параметры
В следующей таблице перечислены обязательные параметры, которые обязательно должны быть переданы плагину HERE.
| Параметр | Описание |
|---|---|
| here.app_id | Часть app_id клиента в паре app_id/токен, используемая для аутентификации всеми менеджерами. |
| here.token | Часть токен клиента в паре app_id/токен для сервиса, используемая для аутентификации всеми менеджерами. |
Плагину геосервисов HERE требуется пара идентификатора и токена приложения для аутентификации приложения в сервисах HERE. Чтобы получить пару идентификатора и токена приложения, посетите https://developer.here.com/
Необязательные параметры
В следующей таблице перечислены необязательные параметры, которые могут быть переданы плагину HERE.
Примечание: Начиная с Qt 5.5, все параметры ниже должны иметь префикс here. Предыдущие версии не требовали префикса.
| Параметр | Описание |
|---|---|
| here.proxy | URL прокси-сервера, используемого всеми менеджерами. Для использования системного прокси просто передайте «system» в качестве значения. Примечание: См. примечания в QNetworkProxyFactory::systemProxyForQuery() для получения дополнительной информации. |
| here.mapping.host | URL базовой службы плиток карты, используемой менеджером отображения. |
| here.mapping.host.aerial | URL службы плиток карты с видом сверху, используемой менеджером отображения. Для всех спутниковых, гибридных и рельефных схем. |
| here.mapping.cache.directory | Абсолютный путь к каталогу кэша плиток карты, используемому в качестве кэша сетевого диска. По умолчанию место для кэша — подкаталог |
| here.mapping.cache.disk.cost_strategy | Стратегия расчета стоимости для кэширования плиток карты на диске. Допустимые значения — bytesize и unitary. При использовании bytesize связанный параметр размера (here.mapping.cache.disk.size) будет интерпретироваться как байты. При использовании unitary они будут интерпретироваться как количество плиток. Значение по умолчанию для этого параметра — bytesize. |
| here.mapping.cache.disk.size | Размер кэша на диске для плиток карты. По умолчанию размер кэша — 50 МБ, если стратегия расчета стоимости для этого кэша — bytesize, или 1000 плиток, если стратегия расчета стоимости — unitary. |
| here.mapping.cache.memory.cost_strategy | Стратегия расчета стоимости для кэширования плиток карты в оперативной памяти. Допустимые значения — bytesize и unitary. При использовании bytesize связанный параметр размера (here.mapping.cache.memory.size) будет интерпретироваться как байты. При использовании unitary они будут интерпретироваться как количество плиток. Значение по умолчанию для этого параметра — bytesize. |
| here.mapping.cache.memory.size | Размер кэша в оперативной памяти для плиток карты. По умолчанию размер кэша — 3 МБ, если стратегия расчета стоимости для этого кэша — bytesize, или 100 плиток, если стратегия расчета стоимости — unitary. |
| here.mapping.cache.texture.cost_strategy | Стратегия расчета стоимости для кэширования распакованных плиток карты в памяти. Допустимые значения — bytesize и unitary. При использовании bytesize связанный параметр размера (here.mapping.cache.texture.size) будет интерпретироваться как байты. При использовании unitary они будут интерпретироваться как количество плиток. Значение по умолчанию для этого параметра — bytesize. |
| here.mapping.cache.texture.size | Размер кэша текстур для плиток карты. По умолчанию размер кэша — 6 МБ, если стратегия расчета стоимости для этого кэша — bytesize, или 30 плиток, если стратегия расчета стоимости — unitary. Обратите внимание, что кэш текстур имеет минимальный размер, зависящий от размера области просмотра карты (он должен содержать достаточно данных для отображения плиток, которые в данный момент видны на экране). Это значение — количество кэша, которое будет использоваться помимо минимального. |
| here.mapping.prefetching_style | Этот параметр позволяет указать, как будет выполняться предварительная загрузка плиток движком. Значение по умолчанию, TwoNeighbourLayers, заставляет движок предварительно загружать плитки для слоя выше и ниже текущего слоя плиток, обеспечивая готовые плитки при приближении или отдалении от текущего уровня масштабирования. OneNeighbourLayer предварительно загружает только один слой, наиболее близкий к текущему уровню масштабирования. Наконец, NoPrefetching позволяет отключить предварительную загрузку, так что будут загружаться только видимые плитки. Обратите внимание, что в зависимости от активного типа карты этот параметр может быть проигнорирован. |
| here.mapping.highdpi_tiles | Нужно ли запрашивать плитки с высоким разрешением. Допустимые значения — true и false. Значение по умолчанию — false. |
| here.geocoding.host | URL службы геокодирования, используемой менеджером геокодирования. |
| here.routing.host | URL службы маршрутизации, используемой менеджером маршрутизации. |
| here.places.host | URL службы поиска, используемой менеджером поиска. |
| here.places.api_version | Версия REST API, используемая менеджером мест. В настоящее время поддерживаются версии 1 и 2. Версия 1 устарела и не будет входить в окончательную версию Qt. По умолчанию используется версия 2. |
Пример использования параметров
В следующих двух примерах показано, как создать экземпляр плагина HERE с параметрами, предоставленными для идентификатора и токена приложения, которые необходимы для аутентификации.
QML
Plugin {
name: "here"
PluginParameter { name: "here.app_id"; value: "myapp" }
PluginParameter { name: "here.token"; value: "abcdefg12345" }
} C++
QMap<QString,QVariant> params;
params["here.app_id"] = "myapp";
params["here.token"] = "abcdefg12345";
QGeoServiceProvider *gsp = new QGeoServiceProvider("here", params); Места
Провайдер HERE удалённо получает места (только чтение) с сервера на основе REST. Конкретные возможности и поведение описаны ниже:
Возможности
| Хранилище | удаленное |
| Чтение/Запись | только чтение |
| Иконки | да |
| Предложения по поисковому запросу | да |
| Рекомендации | да |
| Структура категорий | Иерархическая |
| (Изображения) контента | да |
| (Изображения) обзоры контента | да |
| (Изображения) редакционные статьи контента | да |
| Все подробности, полученные во время поиска | нет |
| Индекс смещения для постраничного вывода | нет |
| Предел для постраничного вывода | да |
| Подсказка релевантности по расстоянию | нет |
| Подсказка релевантности по лексическому названию | нет |
| Расширенные атрибуты | да |
| Уведомления о добавленных/удаленных местах/категориях | нет |
| Области видимости | публичные |
| Совпадение избранных мест/(используется как favoritesPlugin) | нет |
Особенности и ограничения плагина.
Поиск
В следующем списке показаны ядра данных мест, возвращаемых во время поиска мест:
- имя
- местоположение
- контактная информация
- атрибуция
- категории
- рейтинг
- видимость
В следующем списке показаны дополнительные сведения, которые могут быть получены с помощью QPlaceManager::getDetails()
- поставщик
- расширенные атрибуты
Поиск мест
Поисковый запрос и категории
Плагин HERE поддерживает поиск с помощью поискового запроса и категории или категорий, однако одновременно оба не поддерживаются.
- Допустимое использование: поисковый запрос + центр поиска
- Допустимое использование: категория + центр поиска
- Недопустимое использование: поисковый запрос + категория + центр поиска
Это ограничение применяется при использовании плагина HERE с PlaceSearchModel и QPlaceManager::search().
Область поиска
Плагин HERE поддерживает только указание центра поиска при поиске мест через PlaceSearchModel и QPlaceManager::search(). Центр поиска можно указать с помощью окружности, однако радиус следует сохранить по умолчанию — -1. Обычно разработчик не должен устанавливать радиус. Если разработчик задаст радиус, он будет игнорироваться плагином, и границы не будут учтены.
Аналогичным образом при поиске учитывается только центр прямоугольника. Границы прямоугольника не учитываются.
Центр поиска обязательно должен быть указан для всех поисков.
Подсказки релевантности
Плагин HERE не поддерживает подсказки релевантности. Любые предоставленные в запросе подсказки релевантности будут проигнорированы.
Предложения по поисковым запросам
При получении предложений по поисковым запросам поддерживается только частичный поисковый запрос и центр поиска. Это ограничение применяется при использовании плагина HERE с PlaceSearchSuggestionModel и QPlaceManager::searchSuggestions().
И поисковый запрос, и центр поиска должны быть указаны при получении предложений по поисковым запросам.
END_OF_DOCUMENT_MARKERРекомендации
В качестве параметра для рекомендаций поддерживается только указанный идентификатор места. Другие параметры, такие как limit, offset и область поиска, не поддерживаются. Это ограничение применяется при использовании плагина HERE с PlaceSearchModel и QPlaceManager::search().
Расширенные атрибуты
Поддерживаемый набор атрибутов, предоставляемых плагином HERE, не является фиксированным и может расширяться со временем. Также предоставляемые атрибуты могут варьироваться в зависимости от места, например, одно место может предоставлять часы работы, а другое — нет. На момент написания известно, что некоторые места предоставляют openingHours (QPlaceAttribute::OpeningHours) и payment (QPlaceAttribute::Payment), но другие атрибуты могут быть доступны сервером базы данных. У всех мест, предоставляемых плагином, будет установлено атрибут x_provider (QPlaceAttribute::Provider) со значением here.
Ограничения использования - Расширенные атрибуты и содержимое
Расширенные атрибуты и полное содержимое мест сохранять запрещено. Для QML это относится к Place::extendedAttributes, ImageModel, ReviewModel и EditorialModel. Для C++ это относится к QPlace::extendedAttribute(), QPlace::content() и QPlaceManager::getPlaceContent().
(Обратите внимание, что плагин HERE является только источником данных о местах и не поддерживает функцию сохранения.)
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/location-plugin-here.html