Ich habe einen Satz von QPointF
in MarkerModel
welche Unterklassen von AbstractListModel
. Jeder dieser Marker hat einen Status, abhängig davon, welche Farbe er hat. Ich möchte alle diese Markierungen auf der Karte zusammen mit einer Polylinie zeichnen, die alle Punkte mit einem bestimmten Status verbindet. Und ich werde das Modell von C++ Seite aktualisieren. Das ist mein QMLAbstractItemModel zu QML Route
Map {
id: map
anchors.fill: parent
plugin: mapPlugin
center: QtPositioning.coordinate(22.5726, 88.3639)
zoomLevel: 14
MapItemView {
model: markerModel
// delegate: markerDelegate // markerDelegate works
delegate: routeDelegate // routeDelegate does not work
}
Component {
id: markerDelegate
MapQuickItem{
anchorPoint: Qt.point(2.5, 2.5)
coordinate: QtPositioning.coordinate(position.x, position.y)
zoomLevel: 0
sourceItem: Rectangle{
width: settings.marker_size;
height: settings.marker_size;
radius: settings.marker_size/2;
color: settings.marker_colors[status]
border.color: "white"
border.width: 1
}
}
}
Component{
id: routeDelegate
MapRoute{
route: markerModel
line.color: "blue"
line.width: 5
smooth: true
opacity: 0.8
}
}
}
Ich möchte eigentlich beide, die Punkte und die Polylinie auf der Szene. Da ich jedoch nicht weiß, wie ich beide in die Szene bringen soll, habe ich zuerst versucht, die Punkte aus dem Modell mit markerDelegate
zu zeigen, was funktionierte. Jetzt möchte ich diese Punkte als eine Polylinie mit routeDelegate
betrachten. Aber es klagt
Unable MarkerModel zu QDeclarativeGeoRoute
Leider habe ich nicht verstanden, 'markerModel' ist eigentlich eine Unterklasse von' AbstractListModel'. Ich weiß nicht, wie man ein 'RouteModel' in QT (C++) erstellt. –
Ok, sorry, ich bin vom Beispiel verwirrt, vielleicht kannst du es reparieren und nur den Delegaten behalten, den du benutzt? Wenn Sie eine MapRoute mit einem Modell verwenden möchten, das kein RouteModel ist, müssen Sie in Ihrem Modell eine Rolle definieren, über die Sie Routenobjekte (QDeclarativeGeoRoute) bereitstellen. Bearbeiten: tatsächlich, jetzt, dass ich Ihre Frage erneut lesen, können Sie QPointF verwenden, um eine MapRoute oder eine MapPolyline zu erstellen. Sie müssen sie zuerst in QGeoCoordinates konvertieren. –
Wie kann ich QDeclarativeGeoRoute-Objekte aus C++ erstellen? Wo ist diese Klasse? –