2016-12-01 33 views
0

我試圖在QML 5.7中渲染一個空的Map,以繪製地理定位多段線。然而,沒有插件可用來提供地圖數據:地圖插件顯示沒有服務提供商

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 
} 

非常相同的任務可以在C++ /非QML項目進行通過QGeoServiceProvider類。

介意在幾個月前訪問MapQuest changed,打破了Open Street Map插件。您現在需要憑據才能訪問其服務,例如閱讀this comment。正如上次鏈接評論的錯誤報告頁所述,相關補丁已被推送和合並,並將在Qt 5.6.2(和Qt 5.7.1)補丁版本中提供。

相關問題