Spec-Zone.ru › Qt 5.11

Плагин Qt Location Open Street Map

Обзор

Этот плагин геосервисов позволяет приложениям получать доступ к службам местоположений Open Street Map с помощью API Qt Location.

Данные, изображения и информация о карте предоставляются OpenMapSurfer, ThunderForest, OpenStreetMap и участниками. Данные доступны по лицензии Open Database License.

Плагин геосервисов Open Street Map можно загрузить, используя ключ плагина "osm".

Примечание: С Qt 5.6.2 доступные типы карт, предлагаемые этим плагином, могут измениться (или быть удалены) без предварительного уведомления, в зависимости от фактического наличия работоспособного открыто доступного поставщика для каждого типа. Это также означает, что поставщики, предоставляющие тайлы по протоколу HTTPS, могут использоваться. Это становится актуальным при использовании плагина OSM на платформах, таких как Android, для которых поддержка SSL по умолчанию не включена в Qt. Чтобы предотвратить эти изменения, необходимо использовать другой плагин геосервисов или установить параметр плагина osm.mapping.providersrepository.address в указанный пользователем репозиторий, чтобы полностью контролировать (и принять ответственность за) выбор поставщика, используемого для каждого типа карты. С Qt 5.9.6 по умолчанию используется только HTTPS-endpoint nominatim для геокодирования и поиска мест.

Параметры

Дополнительные параметры

В следующей таблице перечислены дополнительные параметры, которые можно передать плагину Open Street Map.

Примечание: С Qt 5.5 все параметры ниже должны быть префиксованы с помощью osm. В предыдущих версиях префикс не требовался.

Параметр Описание
osm.geocoding.host Строка URL, устанавливаемая при выполнении сетевых запросов к серверу геокодирования. Этот параметр должен быть установлен на действительный URL-адрес сервера с правильным API OSM. Если не указано, будет использоваться значение по умолчанию url.

Примечание: Документация API доступна на странице проекта OSM Nominatim.

osm.mapping.cache.directory Абсолютный путь к каталогу кэша тайлов карты, используемого как кэш на диске.

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

osm.mapping.cache.disk.cost_strategy Стратегия расчета стоимости для кэширования тайлов карты на диске. Допустимые значения: bytesize и unitary. При использовании bytesize, соответствующий параметр размера (osm.mapping.cache.disk.size) будет интерпретирован как количество байт. При использовании unitary, он будет интерпретирован как количество тайлов. Значение по умолчанию — bytesize.
osm.mapping.cache.disk.size Размер кэша на диске для тайлов карты. По умолчанию размер кэша составляет 50 МБ, если стратегия расчета стоимости bytesize, или 1000 тайлов, если стратегия unitary.
osm.mapping.cache.memory.cost_strategy Стратегия расчета стоимости для кэширования тайлов карты в памяти. Допустимые значения: bytesize и unitary. При использовании bytesize, соответствующий параметр размера (osm.mapping.cache.memory.size) будет интерпретирован как количество байт. При использовании unitary, он будет интерпретирован как количество тайлов. Значение по умолчанию — bytesize.
osm.mapping.cache.memory.size Размер кэша в памяти для тайлов карты. По умолчанию размер кэша составляет 3 МБ, если стратегия расчета стоимости bytesize, или 100 тайлов, если стратегия unitary.
osm.mapping.cache.texture.cost_strategy Стратегия расчета стоимости для кэширования распакованных тайлов карты в памяти. Допустимые значения: bytesize и unitary. При использовании bytesize, соответствующий параметр размера (osm.mapping.cache.texture.size) будет интерпретирован как количество байт. При использовании unitary, он будет интерпретирован как количество тайлов. Значение по умолчанию — bytesize.
osm.mapping.cache.texture.size Размер кэша текстур для тайлов карты. По умолчанию размер кэша составляет 6 МБ, если стратегия расчета стоимости bytesize, или 30 тайлов, если стратегия unitary. Обратите внимание, что кэш текстур имеет минимальный размер, зависящий от размера области просмотра карты (он должен содержать достаточно данных для отображения тайлов, видимых на экране). Это значение — дополнительный объем кэша к минимальному.
osm.mapping.custom.datacopyright Пользовательская строка авторских прав данных, используемая при установке Map::activeMapType в MapType.CustomMap через параметр urlprefix. Эти авторские права будут использоваться только при использовании CustomMap. Если пусто, авторские права на пользовательскую карту не будут отображаться.
osm.mapping.custom.host URL-адрес пользовательского сервера тайлов. Этот параметр должен быть установлен на действительный URL-адрес сервера, предоставляющего соответствующий API OSM. Для использования этого сервера, параметр Map::activeMapType в Map должен быть установлен на поддерживаемый тип карты MapType.CustomMap. Этот тип карты доступен только если этот параметр плагина задан, в этом случае он всегда является Map::supportedMapTypes[supportedMapTypes.length - 1].

Примечание: Установка параметра mapping.custom.host на новый сервер делает кэш тайлов карты бесполезным для старого стиля custommap.

osm.mapping.custom.mapcopyright Пользовательская строка авторских прав карты, используемая при установке Map::activeMapType в MapType.CustomMap через параметр urlprefix. Эти авторские права будут использоваться только при использовании CustomMap. Если пусто, авторские права на пользовательскую карту не будут отображаться.
osm.mapping.highdpi_tiles Требуются ли тайлы высокого разрешения. Допустимые значения: true и false. Значение по умолчанию — false. Обратите внимание, что не все типы карт доступны в высоком разрешении. Установка этого параметра в значение true может не иметь эффекта, если в данный момент нет доступных типов карт с высоким разрешением. Файлы с информацией о поставщиках для тайлов высокого разрешения имеют имена street-hires, satellite-hires, cycle-hires, transit-hires, night-transit-hires, terrain-hires и hiking-hires. Они загружаются из того же источника, что и аналогичные тайлы низкого разрешения.
osm.mapping.offline.directory Абсолютный путь к каталогу, содержащему тайлы карты, используемые для автономного хранения. Если указан, он будет работать совместно с кэшем на диске, но тайлы не будут автоматически добавляться, удаляться или обновляться. Формат тайлов соответствует формату кэша на диске. Значение по умолчанию отсутствует. Если этот параметр не задан, каталог не будет индексироваться и будет использоваться только кэш на диске, чтобы уменьшить сетевой трафик или использовать кэш как автономное хранилище для текущих кэшированных тайлов.
osm.mapping.prefetching_style Этот параметр позволяет указать, как должен выполняться предварительная загрузка тайлов движком. Значение по умолчанию, TwoNeighbourLayers, заставляет движок загружать тайлы для слоя над текущим и слоя под текущим, предоставляя готовые тайлы при приближении или отдалении от текущего уровня масштабирования. OneNeighbourLayer загружает только слой, ближайший к текущему уровню масштабирования. Наконец, NoPrefetching позволяет отключить предварительную загрузку, так что будут загружаться только видимые тайлы. Обратите внимание, что в зависимости от активного типа карты этот параметр может быть проигнорирован.
osm.mapping.providersrepository.address Плагин OpenStreetMap извлекает информацию о поставщике из удаленного репозитория. Это делается для того, чтобы избежать использования жёстко заданных серверов по умолчанию, которые могут стать недоступными. По умолчанию эта информация извлекается с maps-redirect.qt.io. Установка этого параметра изменяет адрес репозитория поставщиков на указанный пользователем, который должен содержать файлы street, satellite, cycle, transit, night-transit, terrain и hiking, каждый из которых должен содержать корректную информацию о поставщике.
osm.mapping.providersrepository.disabled По умолчанию плагин OpenStreetMap извлекает информацию о поставщике из удаленного репозитория, чтобы избежать потери сервиса из-за недоступности жёстко заданных сервисов. Тем не менее, в плагине есть резервные жёстко заданные данные поставщика на случай, если репозиторий поставщика станет недоступным. Установка этого параметра в значение true заставляет плагин использовать только жёстко заданные URL-адреса и, следовательно, предотвращает извлечение данных поставщика из удалённого репозитория.
osm.places.debug_query Установите этот параметр в значение true, чтобы добавить расширенный атрибут в каждый результат с именем "requestUrl", содержащий URL, используемый для запроса. Значение по умолчанию — false.
osm.places.host Строка URL, устанавливаемая при выполнении сетевых запросов к серверу мест. Этот параметр должен быть установлен на действительный URL-адрес сервера с правильным API OSM. Если не указано, будет использоваться значение по умолчанию url.

Примечание: Документация API доступна на странице проекта OSM Nominatim.

osm.places.page_size Количество результатов на странице. Обратите внимание, что это значение может быть ограничено на стороне сервера. Типичное максимальное значение в стандартных экземплярах nominatim — 50.
osm.routing.apiversion Строка, определяющая версию API (пользовательского) сервера OSRM. Допустимые значения: v4 и v5. Значение по умолчанию — v5. Этот параметр должен быть установлен только если osm.routing.host установлен и является сервером OSRM v4.
osm.routing.host Строка URL, устанавливаемая при выполнении сетевых запросов к серверу маршрутизации. Этот параметр должен быть установлен на действительный URL-адрес сервера с правильным API osrm. Если не указано, будет использоваться значение по умолчанию url.

Примечание: Документация API и исходные коды доступны на сайте проекта OSRM.

osm.useragent Строка пользовательского агента, устанавливаемая при выполнении сетевых запросов. Этот параметр должен быть установлен на значение, однозначно идентифицирующее приложение. Обратите внимание, что поставщики могут блокировать приложения, не устанавливающие этот параметр, оставляя его с пользовательским агентом по умолчанию (например, Nominatim для геокодирования).

Пример использования параметра

Следующий пример демонстрирует создание экземпляра плагина OSM с предоставленными параметрами для пользовательского агента и, при необходимости, пользовательского URL-адреса сервера, а также соответствующей информации об авторских правах поставщика тайлов. Кроме того, можно выбрать другой сервер маршрутизации, кроме публичного osrm.

QML

Plugin {
    name: "osm"
    PluginParameter { name: "osm.useragent"; value: "My great Qt OSM application" }
    PluginParameter { name: "osm.mapping.host"; value: "http://osm.tile.server.address/" }
    PluginParameter { name: "osm.mapping.copyright"; value: "All mine" }
    PluginParameter { name: "osm.routing.host"; value: "http://osrm.server.address/viaroute" }
    PluginParameter { name: "osm.geocoding.host"; value: "http://geocoding.server.address" }
}

Другая информация, специфичная для плагина

Кэш тайлов

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

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/location-plugin-osm.html

Spec-Zone.ru

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