Плагин 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, доступные типы карт, предлагаемые этим плагином, могут изменяться без предварительного уведомления в зависимости от фактической доступности каждого поставщика. Чтобы предотвратить эти изменения, следует использовать другой плагин геосервисов или установить параметр плагина osm.mapping.providersrepository.address на указанный пользователем репозиторий, чтобы полностью контролировать (и принять на себя ответственность за) выбор поставщика, используемого для каждого типа карты.
Параметры
Дополнительные параметры
В следующей таблице перечислены дополнительные параметры, которые можно передать плагину Open Street Map.
Примечание: Начиная с Qt 5.5, все параметры ниже должны быть префиксрованы с osm. Предыдущие версии не требовали префикса.
| Параметр | Описание |
|---|---|
| osm.useragent | Строка пользовательского агента, устанавливаемая при выполнении сетевых запросов. Этот параметр должен быть установлен на значение, уникально идентифицирующее приложение. Обратите внимание, что поставщики могут блокировать приложения, не устанавливающие этот параметр, оставив его в пользовательском агенте стандартного плагина (например, Nominatim для геокодирования) |
| 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.custom.datacopyright | Строка пользовательского авторского права данных используется при установке Map::activeMapType на MapType.CustomMap через параметр urlprefix. Это авторское право будет использоваться только при использовании CustomMap из вышеперечисленного. Если пусто, авторское право данных для пользовательской карты не будет отображено. |
| 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.mapping.highdpi_tiles | Требовать ли тайлы с высоким разрешением. Допустимые значения — true и false. Значение по умолчанию — false. Обратите внимание, что не все типы карт доступны в высоком разрешении. Установка этого параметра в значение true может вообще не иметь эффекта, если в данный момент нет доступных типов карт в высоком разрешении. Файлы с информацией о поставщиках для тайлов с высоким разрешением называются street-hires, satellite-hires, cycle-hires, transit-hires, night-transit-hires, terrain-hires и hiking-hires. Они извлекаются из того же источника, что и аналогичные тайлы с низким разрешением. |
| osm.mapping.prefetching_style | Этот параметр позволяет указать, как движок должен выполнять предварительную загрузку тайлов. Значение по умолчанию, TwoNeighbourLayers, заставляет движок предварительно загружать тайлы для слоя выше и слоя ниже текущего слоя тайлов, предоставляя готовые тайлы при приближении или отдалении от текущего уровня масштабирования. OneNeighbourLayer предварительно загружает только один слой, наиболее близкий к текущему уровню масштабирования. Наконец, NoPrefetching позволяет отключить предварительную загрузку, так что будут загружаться только видимые тайлы. Обратите внимание, что в зависимости от активного типа карты этот совет может быть проигнорирован. |
| osm.routing.host | Строка URL, устанавливаемая при выполнении сетевых запросов к серверу маршрутизации. Этот параметр должен быть установлен на действительный URL-адрес сервера с правильным API osrm. Если не указан, будет использоваться стандартный URL. Примечание: Документация API и исходный код доступны на сайте Project OSRM. |
| osm.routing.apiversion | Строка, определяющая версию API (пользовательского) сервера OSRM. Допустимые значения — v4 и v5. По умолчанию v5. Этот параметр следует устанавливать только если osm.routing.host установлен, и это сервер OSRM v4. |
| osm.geocoding.host | Строка URL, устанавливаемая при выполнении сетевых запросов к серверу геокодирования. Этот параметр должен быть установлен на действительный URL-адрес сервера с правильным API osm. Если не указан, будет использоваться стандартный URL. Примечание: Документация API доступна на сайте Project OSM Nominatim. |
| osm.places.host | Строка URL, устанавливаемая при выполнении сетевых запросов к серверу мест. Этот параметр должен быть установлен на действительный URL-адрес сервера с правильным API osm. Если не указан, будет использоваться стандартный URL. Примечание: Документация API доступна на сайте Project OSM Nominatim. |
| osm.mapping.cache.directory | Абсолютный путь к каталогу кеша тайлов карты, используемого как сетевой кэш на диске. По умолчанию кеш находится в подкаталоге |
| osm.mapping.offline.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 с параметрами, предоставленными для пользовательского агента и, при необходимости, пользовательского 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.9/location-plugin-osm.html