Использование автономных данных с помощью плагина QtLocation

#qt #openstreetmap #offline #qtlocation

Вопрос:

У меня есть 500 МБ автономных данных, которые я хотел бы использовать с плагином OSM QtLocation. Я использовал пример исходного кода из этого блога https://www.qt.io/blog/2017/05/24/qtlocation-using-offline-map-tiles-openstreetmap-plugin. Данные в примере приложения встроены в файл ресурсов, я хотел бы поместить их в отдельную папку на диске. Для начала я хотел бы, чтобы пример приложения работал с образцами данных, расположенными в папке на диске, а не скомпилированными в файлах ресурсов. При запуске приложения оно по-прежнему загружает данные с онлайн-сервера. Я прочитал много статей в Интернете, но ни одно из решений не работает. Я использую Qt 5.15.2, Windows 10 с компилятором MSVC.

Вот как выглядит мой код.

 import QtQuick 2.7
import QtQuick.Window 2.2
import QtLocation 5.8

Window {
    id: win
    objectName: "window"
    visible: true
    width: 512
    height: 512

    Map {
        id: map
        anchors.fill: parent
        activeMapType: map.supportedMapTypes[1]
        zoomLevel: 1
        plugin: Plugin {
            id: osmPLugin
            name: 'osm';
            PluginParameter { name: 'osm.mapping.offline.directory'; value: 'file:///c:/offline_tiles/' }
        }
    }
}
 

Ответ №1:

Вы должны использовать путь, а не uri:

 PluginParameter { name: 'osm.mapping.offline.directory'; value: 'c:/offline_tiles/' }