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