Ich habe eine Frage gefunden, die meinem Problem sehr ähnlich ist: Wie verknüpfe ich Datenrahmen in ArcGIS oder QGIS? . Die Lösung für QGIS funktioniert jetzt jedoch nicht (das Dual View-Plug-In ist nicht mehr verfügbar).
Ich möchte drei Ansichten synchronisieren:
Die Idee ist, die drei Kartenansichten gleichzeitig mit einer Masterkarte in QGIS Print Composer zu verschieben.
Gibt es eine Möglichkeit oder ein Plug-In, um dies zu tun?
quelle
Die einzige Möglichkeit, die ich in diesem Moment gefunden habe, um ein kleines Skript in Python zu erstellen, könnte möglicherweise in ein Plugin migriert werden, aber ich habe keine Erfahrung damit.
Ist ein wirklich einfacher Code, der den richtigen Komponisten und die richtigen Karten auswählt:
Eine andere Möglichkeit wäre, den anfänglichen Maßstab in Slave-Karten beizubehalten, um ihn nach dem neuen Umfang festzulegen, wenn Karten unterschiedliche Formen haben, aber in meinem persönlichen Fall war dieser Code ausreichend:
Ich bin offen für Verbesserungen dieser Lösung (ich habe fast keine Erfahrung mit
PyQGIS
).Umgang mit unterschiedlichen Ausmaßen und Maßstäben
Der obige Code funktioniert hervorragend mit dem gleichen Ausmaß (und folglich der gleichen Form) und dem gleichen Maßstab. Jetzt habe ich einen Code verbessert, der mit verschiedenen Ausmaßen, Formen und Maßstäben getestet wurde:
Und der daraus resultierende Test:
quelle
Nur ein kleiner Tipp, um es ohne Code zu machen. Es ist weniger effizient als Aldos Antwort, aber es macht am Ende den Trick, wenn es darum geht, eine endgültige Karte zu erstellen. Sie müssen auch keine Master-Ansicht haben, es kommt auf die Ausdehnung des Kartenbereichs an:
usw.
Wenn Sie eine andere Karte als Master benötigen, klicken Sie einfach auf die andere Karte und dann auf "Ausdehnung im Kartenbereich anzeigen", bevor Sie die anderen festlegen.
Wenn Sie eine bestimmte Ansicht für später behalten möchten, empfehle ich Ihnen, das räumliche Lesezeichenfeld zu verwenden. Stellen Sie die Kartenleinwand in einem ausgewählten Ausmaß ein und klicken Sie dann in jedem Slave, den Sie benötigen, auf Festlegen der Kartenleinwand :)
quelle
Ich hatte gerade das gleiche Problem und konnte das gewünschte Ergebnis mit Ausdrücken auf den abhängigen Karten erzielen. Dies setzt voraus, dass alle Karten im Layout die gleichen Abmessungen haben.
Geben Sie Ihrer Hauptkarte eine Artikel-ID, z. B. 'map1' (am Ende der Artikeleigenschaften).
Fügen Sie auf jeder abhängigen Karte jedem Ausdehnungswert einen Ausdruck hinzu:
Der Code erhält die Variablen für das Composer-Element 'map1', die Ausdehnung als Geometrie und schließlich den x_min-Wert aus der Geometrie. Ändern Sie x_min entsprechend in y_min, x_max und y_max.
Der einzige Nachteil ist, dass Sie die abhängigen Karten jedes Mal aktualisieren müssen, wenn Sie die Masterkarte verschieben. Beim Export sollte es jedoch automatisch aktualisiert werden.
quelle