首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RouteMap QML Qt在地图上显示多条路径

使用RouteMap QML Qt在地图上显示多条路径
EN

Stack Overflow用户
提问于 2018-04-20 21:55:59
回答 2查看 925关注 0票数 0

我想使用Qt位置属性在地图上显示路线列表,我可以显示一条路线,但我不知道如何显示多条路线。下面是我的代码:

代码语言:javascript
复制
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都是一条不同的路线。canI如何做到这一点?

我用对应的mapitemview添加了多个模型,但仍然不起作用。

代码语言:javascript
复制
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
        }
    }
}
EN

回答 2

Stack Overflow用户

发布于 2021-02-21 04:50:36

我只是试着做同样的任务,只是完成了它。与第一次尝试一样,您应该添加多个addWayPoints,但在最后只更新一次模型。以下是访问以下位置A->B->C->A的路由示例

代码语言:javascript
复制
    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();
    }

结果:多个路由:

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

票数 0
EN

Stack Overflow用户

发布于 2018-05-06 16:52:43

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

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

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49943303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档