Znalazłem pytanie bardzo podobne do mojego problemu: Jak połączyć ramki danych w ArcGIS lub QGIS? . Ale rozwiązanie dla QGIS nie działa teraz (wtyczka Dual View nie jest już dostępna).
Chcę zsynchronizować trzy widoki:
Chodzi o to, aby przenieść trzy widoki mapy w tym samym czasie za pomocą mapy głównej w kompozytorze wydruku QGIS.
Czy jest na to sposób lub wtyczka?
źródło
Jedynym sposobem, jaki znalazłem w tym momencie, jest stworzenie małego skryptu w pythonie, być może może on migrować do wtyczki, ale nie mam w tym doświadczenia.
To naprawdę podstawowy kod, wybierając odpowiedniego kompozytora i mapy:
Inną opcją byłoby utrzymanie początkowej skali w mapach podrzędnych, aby ustawić nowy zasięg, jeśli mapy mają różne kształty, ale w moim osobistym przypadku ten kod wystarczył:
Jestem otwarty na ulepszenie tego rozwiązania (prawie nie mam doświadczenia
PyQGIS
).Radzenie sobie z różnymi zakresami i skalami
Powyższy kod działa świetnie z tym samym zakresem (a tym samym kształtem) i skalą. Teraz mam ulepszony kod przetestowany z różnymi zakresami, kształtami i skalami:
I wynikowy test:
źródło
Mała wskazówka, aby to zrobić bez kodu. Jest to mniej wydajne niż odpowiedź aldo, ale robi to w końcu, jeśli chodzi o zrobienie ostatecznej mapy. Nie musisz też mieć widoku głównego, liczy się obszar płótna mapy:
itp.
Jeśli potrzebujesz innej mapy, aby zostać mistrzem, po prostu kliknij drugą mapę, a następnie „wyświetl zasięg w obszarze roboczym mapy” przed ustawieniem pozostałych.
Jeśli chcesz zachować określony widok na później, zalecamy skorzystanie z panelu zakładek przestrzennych. Ustaw płótno mapy w wybranym zakresie, a następnie kliknij Ustaw płótno mapy w każdym potrzebnym niewolniku :)
źródło
Właśnie miałem ten sam problem i byłem w stanie uzyskać pożądany wynik za pomocą wyrażeń na mapach zależnych. Zakłada się, że wszystkie mapy mają takie same wymiary w układzie.
Podaj swojej mapie głównej identyfikator przedmiotu, np. „Map1” (na dole właściwości przedmiotu)
Na każdej mapie zależnej dodaj wyrażenie do każdej wartości zasięgu:
Kod pobierze zmienne dla elementu kompozytora „map1”, pobierze z niego zasięg jako geometrię i na końcu uzyska wartość x_min z geometrii. Zmień odpowiednio x_min na y_min, x_max i y_max.
Jedynym minusem jest to, że musisz odświeżać mapy zależne za każdym razem, gdy przenosisz mapę główną. Podczas eksportu powinien jednak aktualizować się automatycznie.
źródło