Подключаемый модуль 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/token, используемой для аутентификации всеми менеджерами. |
| here.token | Часть token клиента пары app_id/token для службы, используемой для аутентификации всеми менеджерами. |
Плагин геосервисов 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.size | Размер кэша дисковых плиток карты в байтах. По умолчанию размер кэша составляет 20 МБ. |
| here.mapping.cache.memory.size | Размер кэша плиток карты в оперативной памяти в байтах. По умолчанию размер кэша составляет 3 МБ. |
| here.mapping.cache.texture.size | Размер кэша текстур плиток карты в байтах. По умолчанию размер кэша составляет 6 МБ. Обратите внимание, что размер кэша текстур имеет жесткий минимальный размер, который зависит от размера области просмотра карты (он должен содержать достаточно данных для отображения плиток, которые в данный момент видны на экране). Это значение — количество кэша, используемого дополнительно к минимальному необходимому. |
| 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().
При получении предложений по поисковому запросу обязательно должны быть предоставлены как поисковый запрос, так и центр поиска.
Рекомендации
В качестве параметра для рекомендаций поддерживается только заданный идентификатор места. Другие параметры, такие как лимит, смещение и область поиска, не поддерживаются. Это ограничение применяется при использовании плагина 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.6/location-plugin-here.html