Ich möchte eine Qml Map mit Kartenelementen (wie MapCircle, ...) aus einer QAbstractListModel
auffüllen. Es scheint zwei dafür geeignete Qml-Tools zu geben, MapItemView
[1] und Repeater
[2]. Die Repeater
ist leistungsfähiger (z. B. ermöglicht es verschachtelte Modelle) - gibt es also einen Grund, die MapItemView
anstelle einer Repeater
zu verwenden?Qt/Qml: Repeater vs. MapItemView für Kartenelemente
Grüße,
[1] http://doc.qt.io/qt-5/qml-qtlocation-mapitemview.html
[2] http://doc.qt.io/qt-5/qml-qtquick-repeater.html
MapItemView Quelle: http://code.qt.io/cgit/qt/qtlocation.git/tree/src/location/declarativemaps/qdeclarativegeomapitemview.cpp
Repeater Quelle: http://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/quick/items/qquickrepeater.cpp
Es ist schwer zu beurteilen, aus der Dokumentation, aber in den meisten Fällen instanziiert "Views" nur so oft wie nötig. Was außerhalb des "Viewports" liegt, wird Ihren Speicher nicht überladen und die anfängliche Erstellungszeit wird besser sein. Der 'Repeater' ist Dump. Es wird 'Items' für jedes Element im Modell erstellt, egal ob diese angezeigt werden oder nicht. – derM
Guter Punkt. Ich überprüfte den Quellcode: '' MapItemView'' fügt alle Elemente zur Map hinzu. Ich bin mir nicht sicher, was "Repeater" genau macht, aber wahrscheinlich wird es auch die Elemente nur zur Karte hinzufügen. Die Karte selbst behandelt das Rendern sichtbarer Objekte. – Hyndrix