Подключаемый модуль 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. Конкретные возможности и поведение описаны ниже:
Возможности
| Хранение | удаленное |
| Чтение/Запись | только чтение |
| Иконки | да |
| Предложения по поисковому запросу | да |
| Рекомендации | да |
| Структура категорий | Иерархическая |
| (Изображения с богатым) содержимым | да |
| (Отзывы с богатым) содержимым | да |
| (Редакционные статьи с богатым) содержимым | да |
| Все подробности, полученные во время поиска | нет |
| Индекс смещения страниц | нет |
| Предел страниц | да |
| Подсказка релевантности расстояния | нет |
| Подсказка релевантности лексического имени | нет |
| Расширенные атрибуты | да |
| Уведомления о добавленных/удаленных местах/категориях | нет |
| Сферы видимости | публичная |
| Соответствие избранных/использование в качестве плагина избранных | нет |
Поведение и ограничения плагина
Поиск
В этом списке показано, какие основные данные о месте возвращаются при поиске места:
- имя
- местоположение
- контактная информация
- атрибуция
- категории
- оценка
- видимость
В этом списке показаны дополнительные детали, которые можно получить с помощью QPlaceManager::getDetails()
- поставщик
- расширенные атрибуты
Поиск мест
Поисковый запрос и категории
Плагин HERE поддерживает поиск по искомому запросу и категории или категориям, однако оба не поддерживаются одновременно.
- Допустимое использование: искомый запрос + центр поиска
- Допустимое использование: категория + центр поиска
- Недопустимое использование: искомый запрос + категория + центр поиска
Это ограничение применяется при использовании плагина HERE с PlaceSearchModel и QPlaceManager::search().
Область поиска
Плагин HERE поддерживает только предоставление центра поиска при поиске мест с помощью PlaceSearchModel и QPlaceManager::search(). Центр поиска может быть предоставлен с помощью окружности, однако радиус следует сохранить по умолчанию — -1. Как правило, разработчик не должен устанавливать радиус. Если разработчик установит радиус, он будет игнорироваться плагином, и границы не будут учитываться.
Аналогичным образом, при поиске учитывается только центр прямоугольной области, но границы прямоугольника не учитываются.
Центр поиска обязателен для всех поисков.
Подсказки релевантности
Плагин HERE не поддерживает подсказки релевантности. Любые подсказки релевантности, предоставленные в запросе на поиск, будут проигнорированы.
Предложения по поисковому запросу
При получении предложений по поисковому запросу поддерживается только частичный искомый запрос и центр поиска. Это ограничение применяется при использовании плагина HERE с PlaceSearchSuggestionModel и QPlaceManager::searchSuggestions().
И искомый запрос, и центр поиска обязательны при получении предложений по поисковому запросу.
Рекомендации
Только указанный идентификатор места поддерживается в качестве параметра для рекомендаций. Другие параметры, такие как предел, смещение и область поиска, не поддерживаются. Это ограничение применяется при использовании плагина 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/archives/qt-5.11/location-plugin-here.html