地图插件显示没有服务提供商
Map Plugin shows no service providers
我正在尝试在 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
为什么我没有任何可用的插件,我怎样才能使用一个插件?
您没有默认提供程序,因为 Qt 不强制使用特定提供程序。现在更重要的是,所有可用的服务都需要注册(并接受 agreement/ToS)才能使用他们的服务。
可以找到可用插件的列表here。
通过链接,您可以了解每个链接的具体使用设置。
在 QML 中添加提供者只是声明一个 Plugin
类型的问题,大致如下:
Plugin {
name: <provider_name> // { "here" | "mapbox" | "osm" }
PluginParameter { name: <param_name>; value: <param_value> }
// other parameters
}
可以通过 QGeoServiceProvider
class.
在 C++/非 QML 项目中执行完全相同的任务
介意访问MapQuestchanged few months ago, breaking the Open Street Map plugin. You now need credentials to access their service, e.g. read this comment。相关补丁已推送并合并,如上次链接评论的错误报告页面所述,并将在 Qt 5.6.2(和 Qt 5.7.1)补丁发布中提供。
我正在尝试在 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
为什么我没有任何可用的插件,我怎样才能使用一个插件?
您没有默认提供程序,因为 Qt 不强制使用特定提供程序。现在更重要的是,所有可用的服务都需要注册(并接受 agreement/ToS)才能使用他们的服务。
可以找到可用插件的列表here。 通过链接,您可以了解每个链接的具体使用设置。
在 QML 中添加提供者只是声明一个 Plugin
类型的问题,大致如下:
Plugin {
name: <provider_name> // { "here" | "mapbox" | "osm" }
PluginParameter { name: <param_name>; value: <param_value> }
// other parameters
}
可以通过 QGeoServiceProvider
class.
介意访问MapQuestchanged few months ago, breaking the Open Street Map plugin. You now need credentials to access their service, e.g. read this comment。相关补丁已推送并合并,如上次链接评论的错误报告页面所述,并将在 Qt 5.6.2(和 Qt 5.7.1)补丁发布中提供。