Spec-Zone.ru › Qt 5.9

Плагин 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 Абсолютный путь к каталогу кэша плиток карты, используемого в качестве кэша на диске сети.

По умолчанию местоположение кэша находится в подкаталоге QtLocation/here в расположении, возвращаемом QStandardPaths::writableLocation(), вызываемом с QStandardPaths::GenericCacheLocation в качестве параметра. В системах, не имеющих понятия о общем кэше, используется вместо него приложение-специфический QStandardPaths::CacheLocation.

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/qt-5.9/location-plugin-here.html

Spec-Zone.ru

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