2016-12-01 3 views
0

Я пытаюсь сделать пустой Map в QML 5.7, чтобы нарисовать геополированные полилинии. Тем не менее, никаких плагинов не доступны для питания картографические данные:Map Plugin не показывает поставщиков услуг

Map { 
    anchors.fill:parent 
    plugin: Plugin { 
     name: "osm" 
     Component.onCompleted: console.log('a',availableServiceProviders.length) 
    } 

    MapPolyline { 
     line.color: "#299FE7"; line.width: 3 
     path: parent.points 
    } 

    Timer { 
     running:true; interval:1000 
     onTriggered: console.log('b',parent.supportedMapTypes.length) 
    } 
} 

Вышеуказанные выходы:

qml: a 0 
qml: b 0 

Почему у меня нет каких-либо плагинов доступны, и как я могу получить один работать?

ответ

4

У вас нет поставщика по умолчанию, потому что Qt не применяет использование конкретного. Более того, теперь все доступные требуют регистрации (и принятия соглашения/ToS) для использования своих услуг.

Список доступных плагинов можно найти here. Следуя ссылкам, вы можете прочитать о конкретной установке для использования каждого из них.

Добавление поставщика в QML только вопрос об объявлении типа Plugin, что-то вдоль линии, что:

Plugin { 
    name: <provider_name> // { "here" | "mapbox" | "osm" } 
    PluginParameter { name: <param_name>; value: <param_value> } 
    // other parameters 
} 

Сама же задача может быть выполнена в рамках проекта ++/не QML С помощью QGeoServiceProvider класс.

Помните, что доступ к MapQuest changed несколько месяцев назад, нарушив плагин Open Street Map. Теперь вам нужны учетные данные для доступа к их сервису, например. читать this comment. Соответствующий патч был нажат и объединен, как указано на странице отчета об ошибке последнего связанного комментария, и будет доступен в выпуске исправления Qt 5.6.2 (и Qt 5.7.1).

Смежные вопросы