Плагин Qt Location Open Street Map
Обзор
Этот плагин геосервисов позволяет приложениям получать доступ к службам геолокации OpenStreetMap с помощью API Qt Location.
Данные, изображения и информация о картах предоставляются OpenMapSurfer, ThunderForest, OpenStreetMap и участниками проекта. Данные доступны по лицензии Open Database License.
Плагин геосервисов OpenStreetMap может быть загружен с использованием ключа плагина «osm».
Примечание: Начиная с Qt 5.6.2, доступные типы карт, предлагаемые этим плагином, могут изменяться (или быть удалены) без предварительного уведомления в зависимости от фактической доступности жизнеспособного открытого поставщика для каждого типа. Это также означает, что могут использоваться поставщики, предоставляющие тайлы по протоколу HTTPS. Это становится актуальным при использовании плагина OSM на таких платформах, как Android, для которых поддержка SSL не включена в Qt по умолчанию. Чтобы предотвратить эти изменения, следует использовать другой плагин геосервисов или установить параметр плагина osm.mapping.providersrepository.address на указанный пользователем репозиторий, чтобы полностью контролировать (и принять на себя ответственность за) выбор поставщика для каждого типа карты. Начиная с Qt 5.9.6, конечная точка nominatim по умолчанию, используемая для геокодирования и поиска мест, также изменилась на HTTPS-только.
Параметры
Дополнительные параметры
В следующей таблице перечислены дополнительные параметры, которые можно передать плагину OpenStreetMap.
Примечание: Начиная с Qt 5.5, все параметры ниже должны быть префиксрованы с osm. В предыдущих версиях префикс не требовался.
| Параметр | Описание |
|---|---|
| osm.geocoding.host | Строка URL, устанавливаемая при выполнении сетевых запросов к серверу геокодирования. Этот параметр должен быть установлен на действительный URL-адрес сервера с соответствующим API OSM. Если не указано иное, будет использоваться значение по умолчанию url. Примечание: Документация API доступна по адресу Project OSM Nominatim. |
| osm.geocoding.debug_query | Инструктирует плагин вставлять URL запроса к nominatim в ответ на геокодирование для отладки. |
| osm.geocoding.include_extended_data | Инструктирует плагин включать информацию, специфичную для Nominatim (такую как геометрия и класс), в возвращаемые объекты Location, представленные как extendedAttributes. |
| 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 | Выполнять запрос на получение плиток с высоким разрешением DPI или нет. Допустимые значения: true и false. Значение по умолчанию — false. Обратите внимание, что не все типы карт доступны в высоком разрешении DPI. Установка этого параметра в true может быть без эффекта, если в данный момент нет доступного типа карты с высоким разрешением DPI. Файлы информации о поставщиках для плиток с высоким разрешением DPI имеют имена 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 доступна по адресу Project 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 и исходные коды доступны на сайте Project OSRM. |
| osm.useragent | Строка User-Agent, устанавливаемая при выполнении сетевых запросов. Этот параметр должен быть установлен на значение, однозначно идентифицирующее приложение. Обратите внимание, что поставщики могут заблокировать приложения, не устанавливающие этот параметр, оставив его со значениями по умолчанию (например, Nominatim для геокодирования). |
Пример использования параметров
Следующий пример демонстрирует, как создать экземпляр плагина OSM с параметрами, предоставленными для useragent и, при необходимости, пользовательским 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/qt-5.15/location-plugin-osm.html