Existe alguma opção no QGIS para desenhar linhas paralelas que se encaixam na parte externa da linha (linhas adjacentes) que são independentes da escala?

12

Tenho que desenhar um mapa de uma rede de transporte público de ônibus e tenho um problema nas avenidas por onde muitas linhas passam. Meu objetivo é fazer um mapa visual em que as linhas nessas avenidas sejam paralelas uma da outra e sem espaço entre elas, para poder ver todas elas ao mesmo tempo, independentemente da escala.

Tentei opções de encaixe e desenho paralelo (ferramentas CAD), mas o problema é que, quando altero a escala, a distância entre as linhas muda e elas colidem ou separam uma da outra, bagunçando tudo.

Então, minha pergunta é:

  • Existe alguma opção para desenhar linhas adjacentes que permaneçam adjacentes independentemente da escala de visualização?

Nota: Não sei se o adjacente é usado para o que quero dizer, então aqui copio um exemplo do que estou procurando: Objetivo


É o que acontece quando eu aumento o zoom:

Mais Zoom

E quando diminuo o zoom:

Reduzir o zoom

Edição: Aqui eu compartilho uma situação de por que a solução sugerida não funcionaria para mim. Três linhas compartilham a mesma rua por um tempo, mas depois se separam em três ruas diferentes.

Dividido

Não posso usar uma única linha com várias simbolizações porque, ao longo da rede, as linhas se dividem e se juntam novamente (há mais de 15 linhas de ônibus).

Os dados contidos nos dados do atributo não me ajudam, porque é apenas uma camada cheia de linhas, sem nenhum atributo além de algumas informações da rede (número de ônibus / hora, passageiro / hora, etc.). (QGIS 2.8.6 funcionando no Windows 7)

Andreu Amoros
fonte
1
No QGIS 2.16, novas opções de simplificação de renderização foram introduzidas. Embora não possa confirmar se isso ajudará na sua situação.
Joseph
A maneira que eu faria isso no ArcGIS for Desktop é definindo uma escala de referência no quadro de dados .
PolyGeo
Olá @PolyGeo, o problema com esta solução (que pode ser implementada no QGIS, alterando as unidades para "mapear unidade") é que eu preciso que as linhas alterem sua largura dependendo da escala, mas não da relação entre elas. Sei que o que preciso é algo muito específico e difícil de implementar. Algo mais apropriado para o Illustrator do que para um software GIS. Obrigado por ajudar!
Andreu Amoros
Todos os shapefiles da linha estão em cima uns dos outros ou já existe algum tipo de deslocamento entre eles?
Joseph
Em alguns casos, eles se encontram e, em outros, não. O que você propõe?
Andreu Amoros

Respostas:

6

Não sei se é disso que você realmente procura, mas você pode usar uma única linha com uma simbolização diferente para criar a aparência de duas linhas paralelas.

Começando com uma linha de 1,1 km no CRS 3857 (métrica, pseudo-Mercator conforme o Google e outros serviços da web):

insira a descrição da imagem aqui

Nas propriedades, adicione outra camada de símbolo (para ver duas linhas).

insira a descrição da imagem aqui

Defina a largura de cada linha nas unidades do mapa - nesse caso, as unidades são metros e selecionei uma largura de 50 metros e defina o deslocamento de cada linha para metade da largura, com uma delas igual mas negativa Deslocamento:

insira a descrição da imagem aqui

Isso dá a aparência que você procura:

insira a descrição da imagem aqui

... e persiste em diferentes escalas:

insira a descrição da imagem aqui

Simbamangu
fonte
2
Pensei sobre isso, mas seria difícil lidar com separações de linhas.
Victor Victor
@ Victor sobre separação: você pode criar atributos diferentes como "linha única", "linha dupla" com o valor Verdadeiro / Falso e usar rotulagem baseada em regras.
SweetSugar.cola 23/09/16
1
O @ Victor concordou, precisa obter mais informações do OP sobre a natureza dos dados; essa solução pode não funcionar dependendo de como as linhas se conectam e se separam.
Simbamangu 23/09/16
1
@ Andreu, talvez você possa clicar em "editar" na sua postagem original e adicionar essas informações (e um exemplo de onde essa solução não funcionaria ) e (melhor ainda) alguns dados de amostra?
Simbamangu 26/09/16
@ Simbamangu Antes de tudo, obrigado por tentar uma solução e compartilhá-la comigo. Mesmo que essa solução possa funcionar em alguns casos, como Victor disse, seria difícil usá-la quando as linhas se separarem das outras. De fato, isso acontece sempre que as linhas se dividem em ruas diferentes. Os dados funcionam assim: eu tenho todas as linhas da rede Bus em diferentes shapefiles. O "problema" é que todos eles são plotados de forma realista, então, quando eu escolho mais de um de cada vez, eles colidem. Então, meu objetivo é fazer um mapa onde você possa ver visualmente toda a rede. Vou editar minha postagem.
Andreu Amoros
3

Se por "opção de encaixe" você quer dizer que não pode alterar a geometria das polilinhas e só pode alterar sua simbologia, o que você descreveu é quase impossível.

A partir dos seus exemplos, você parece estar procurando renderizar polilinhas de modo que as partes paralelas se toquem sem se sobrepor, por exemplo, tendo o limite entre as duas linhas paralelas igualmente dividindo sua distância de separação. Se visualizarmos as representações da polilinha como seus buffers , você poderá criar casos (semelhantes à sua Fig. 4), em que a mesma linha deve ter diferentes larguras de "buffer" em partes diferentes (ditadas pelas linhas vizinhas mais próximas). Em outras palavras, a largura do seu buffer dependeria de outras polilinhas e pode variar em diferentes segmentos das polilinhas. Porém, tipicamente, a simbolização usa apenas informações / atributos do próprio recurso.

Obviamente, você sempre pode usar um "buffer" de raio fixo ao redor das linhas e manipular manualmente os vértices (ou editar os buffers) para que os limites se ajustem. Os buffers permaneceriam "encaixados" com mais / menos zoom, embora isso seja muito trabalhoso e ajuste manual possa ser necessário se novas linhas forem adicionadas.

tinlyx
fonte
Obrigado pela resposta. Posso mudar a geometria das polilinhas, mas, como existem muitas linhas cruzando entre si e muitas combinações diferentes, isso se torna muito demorado e tedioso. Eu tentei a solução de buffer, mas é ainda mais difícil do que apenas editar o formato das linhas, porque se for necessário definir a visualização dependente em todos os segmentos de todas as linhas.
Andreu Amoros
1
@AndreuAmoros. Isto é exatamente o que eu estava sugerindo. A edição das linhas (ou dos "buffers" associados) é realmente demorada, mas é necessário, pela natureza do seu requisito, que esses buffers se encaixem.
tinlyx