0

我想使用 Qt Location 属性在地图上显示路线列表,我能够显示一条路线,但我不知道如何显示多条路线。这是我的代码:

RouteModel {
    id: routeModel
    plugin: somePlugin

    query: RouteQuery {}
    Component.onCompleted: {
        query.addWaypoint(QtPositioning.coordinate(26.328045523310905, 50.080033033011546));
        query.addWaypoint(QtPositioning.coordinate(26.333615791655415, 50.097984054173025));
        routeModel.update();
        query.addWaypoint(QtPositioning.coordinate(26.291584, 50.199094));
        query.addWaypoint(QtPositioning.coordinate(26.288128, 50.188725));
        routeModel.update();
    }

    onStatusChanged: console.debug("current route model status", status, count, errorString)
}

我希望每一对 addWayPoints 都是一条不同的路线。我怎样才能做到这一点?

我用他们对应的 mapitemview 添加了多个模型,但它仍然没有用。

RouteModel {
    id: routeModel
    plugin: somePlugin
    query: RouteQuery {}
    Component.onCompleted: {
        query.addWaypoint(QtPositioning.coordinate(26.328045523310905, 50.080033033011546));
        query.addWaypoint(QtPositioning.coordinate(26.333615791655415, 50.097984054173025));
        routeModel.update();
    }
}

RouteModel {
    id: rm
    plugin: somePlugin
    query: RouteQuery {}
    Component.onCompleted: {
        query.addWaypoint(QtPositioning.coordinate(26.291584, 50.199094));
        query.addWaypoint(QtPositioning.coordinate(26.288128, 50.188725));
        rm.update();
    }
}

RouteModel {
    id: rm1
    plugin: somePlugin
    query: RouteQuery {}
    Component.onCompleted: {
        query.addWaypoint(QtPositioning.coordinate(26.278496, 50.203740));
        query.addWaypoint(QtPositioning.coordinate(26.272351, 50.185939));
        rm.update();
    }
}

Map {
    id: map
    anchors.fill: parent
    plugin: somePlugin
    center: magione
    gesture.enabled: true
    zoomLevel: 13


    MapItemView {
        model: routeModel
        delegate: MapRoute {
            route: routeData
            line.color: "blue"
            line.width: 5
            smooth: true
        }
    }

    MapItemView {
        model: rm
        delegate: MapRoute {
            route: routeData1
            line.color: "green"
            line.width: 5
            smooth: true
        }
    }

    MapItemView {
        model: rm2
        delegate: MapRoute {
            route: routeData2
            line.color: "black"
            line.width: 5
            smooth: true
        }
    }
}
4

2 回答 2

0

我只是想完成同样的任务,只是完成了 IT。与第一次尝试一样,您应该添加多个 addWayPoints,但最后只更新一次模型。以下是访问以下地点 A->B->C->A 的路线示例

    Component.onCompleted:
    {
        query.addWaypoint(QtPositioning.coordinate(-25.402340, -49.248682));
        query.addWaypoint(QtPositioning.coordinate(-25.392142, -49.202556));
        query.addWaypoint(QtPositioning.coordinate(-25.372512, -49.227785));
        query.addWaypoint(QtPositioning.coordinate(-25.402340, -49.248682));
        routeModel.update();
    }

结果:多条路线:
多条路线

现在只是想知道如何在每个路线停靠点获得精确定位。

于 2021-02-20T20:50:35.800 回答
-1

显示从查询返回的所有路由通常开箱即用(假设您使用的插件为每个路由请求提供多个结果)。

如果要同时显示多个请求的路由,则每个要同时显示的请求都需要一个模型/视图

我最后指出,在您的示例中,您错误地使用了模型角色。没有这样的 routeData1routeData2只有 routeData ,每次尝试从路由模型访问路由数据时都应该使用此角色。

于 2018-05-06T08:52:43.233 回答