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:
É o que acontece quando eu aumento o zoom:
E quando diminuo 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.
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)
Respostas:
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):
Nas propriedades, adicione outra camada de símbolo (para ver duas linhas).
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:
Isso dá a aparência que você procura:
... e persiste em diferentes escalas:
fonte
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.
fonte