Encontrei uma pergunta muito semelhante ao meu problema: Como vincular quadros de dados no ArcGIS ou QGIS? . Mas a solução para o QGIS não funciona agora (o plug-in Dual View não está mais disponível).
Quero sincronizar três visualizações:
A idéia é mover as três visualizações de mapa ao mesmo tempo com um mapa mestre no QGIS print compositor.
Existe uma maneira ou plug-in de fazer isso?
fonte
A única maneira que encontrei neste momento para criar um pequeno script em python, talvez isso possa migrar para um plug-in, mas não tenho experiência nisso.
É um código realmente básico, selecionando o compositor e os mapas certos:
Outra opção seria manter a escala inicial nos mapas escravos para definir a nova extensão se os mapas tiverem formas diferentes, mas no meu caso pessoal com esse código foi suficiente:
Estou aberto para melhorar esta solução (quase não tenho experiência com
PyQGIS
).Lidar com diferentes extensões e escalas
O código acima funciona muito bem com a mesma extensão (e consequentemente, forma) e escala. Agora eu tenho um código aprimorado testado com diferentes extensões, formas e escalas:
E o teste resultante:
fonte
Apenas uma pequena dica para fazer isso sem código. É menos eficiente do que a resposta de Aldo, mas, no final, ele resolve o problema se for para fazer um mapa final. Você também não precisa ter uma visualização principal; é a extensão da tela do mapa que conta:
etc.
Quando você precisar que outro mapa seja mestre, basta clicar no outro mapa e depois em "visualizar extensão na tela do mapa" antes de definir os outros.
Se desejar manter uma visão específica para mais tarde, recomendo que você use o painel de favoritos Espaciais. Defina a tela do mapa para uma extensão escolhida e clique em Definir para mapear a tela em cada escravo necessário :)
fonte
Acabei de ter o mesmo problema e consegui o resultado desejado usando expressões nos mapas dependentes. Isso pressupõe que todos os mapas tenham as mesmas dimensões no layout.
Dê ao seu mapa mestre um ID do item, por exemplo, 'map1' (na parte inferior das propriedades do item)
Em cada mapa dependente, adicione uma expressão a cada um dos valores de extensão:
O código obterá as variáveis para o item do compositor 'map1', obterá a extensão como geometria e, finalmente, obterá o valor x_min da geometria. Altere x_min para y_min, x_max e y_max de acordo.
A única desvantagem é que você precisa atualizar os mapas dependentes cada vez que moveu o mapa mestre. Na exportação, ele deve ser atualizado automaticamente.
fonte