Плагин 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 | Часть 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.13/location-plugin-here.html