C'è qualche opzione in QGIS per disegnare linee parallele che si agganciano alla parte esterna della linea (linee adiacenti) che sono indipendenti dalla scala?


12

Devo disegnare una mappa di una rete di trasporto pubblico di autobus e ho un problema nei viali in cui passano molte linee. Il mio obiettivo è di creare una mappa visiva in cui le linee in quei viali siano parallele l'una all'altra e senza spazio tra loro, al fine di vederle tutte contemporaneamente, indipendentemente dalla scala.

Ho provato le opzioni di snap e il disegno parallelo (strumenti CAD), ma il problema è che quando cambio la scala, la distanza tra le linee cambia e si scontrano o si separano l'una dall'altra, rovinando tutto.

Quindi la mia domanda è:

  • C'è qualche opzione per disegnare linee adiacenti che rimangono adiacenti indipendentemente dalla scala di visualizzazione?

Nota: non so se adiacente viene utilizzato ciò che intendo, quindi qui copio un esempio di ciò che sto cercando: Obbiettivo


Questo è ciò che accade quando ingrandisco:

Ingrandire

E quando eseguo lo zoom indietro:

Rimpicciolisci

EDIT: Qui condivido una situazione per cui la soluzione suggerita non funzionerebbe per me. Tre linee condividono la stessa strada per un po ', ma poi si separano in tre strade diverse.

Diviso

Non posso usare una sola linea con più simbolizzazioni perché lungo tutta la rete, le linee si dividono e si uniscono di nuovo (ci sono più di 15 linee di autobus).

I dati contenuti nei dati degli attributi non mi aiutano, perché sono solo un livello pieno di linee, senza attributi diversi da alcune informazioni di rete (numero di autobus / ora, passeggero / ora, ecc.). (QGIS 2.8.6 funziona su Windows 7)


1
In QGIS 2.16 sono state introdotte nuove opzioni di semplificazione del rendering . Anche se non posso confermare se questo aiuterà nella tua situazione.
Joseph,

Il modo in cui lo farei in ArcGIS per desktop è l' impostazione di una scala di riferimento sul frame di dati .
PolyGeo

Ciao @PolyGeo, il problema con questa soluzione (che può essere implementata in QGIS, cambiando le unità in "map unit") è che ho bisogno che le linee cambino la loro larghezza in base alla scala ma non alla relazione tra loro. So che ciò di cui ho bisogno è qualcosa di molto specifico e difficile da attuare. Qualcosa di più appropriato per Illustrator che per un software GIS. Grazie dell'aiuto!
Andreu Amoros,

Tutti gli shapefile della linea si trovano uno sopra l'altro o c'è già una sorta di offset tra allora?
Giuseppe,

In alcuni casi si trovano uno sopra l'altro e in altri casi no. Cosa proponi?
Andreu Amoros,

Risposte:


6

Non sei sicuro che questo sia ciò che stai veramente cercando, ma puoi usare una singola linea con una diversa simbolizzazione per creare l'aspetto di due linee parallele.

A partire da una linea di 1,1 km in CRS 3857 (metrica, pseudo-Mercatore secondo Google e altri servizi web):

inserisci qui la descrizione dell'immagine

Nelle proprietà, aggiungi un altro livello simbolo (in modo da visualizzare due righe).

inserisci qui la descrizione dell'immagine

Imposta la larghezza di ogni linea in unità della mappa : in questo caso, le unità sono metri e ho selezionato una larghezza di 50 metri e ho impostato l' offset di ciascuna linea a metà della sua larghezza, con una di esse uguale ma negativa compensare:

inserisci qui la descrizione dell'immagine

Questo dà l'aspetto che stai cercando:

inserisci qui la descrizione dell'immagine

... e persiste a diverse scale:

inserisci qui la descrizione dell'immagine


2
Ci ho pensato, ma sarebbe difficile da affrontare in caso di separazione delle linee.
Victor,

@Victor sulla separazione: puoi creare diversi attributi come "linea singola", "linea doppia" con valore Vero / Falso e utilizzare un'etichettatura basata su regole.
sweet.sugar.cola,

1
@Victor ha concordato, è necessario ottenere maggiori informazioni da OP sulla natura dei dati; questa soluzione potrebbe non funzionare a seconda di come le linee si collegano e si separano.
Simbamangu,

1
@Andreu, forse puoi fare clic su 'modifica' sul tuo post originale e aggiungere quelle informazioni (e un esempio di dove questa soluzione non funzionerebbe ) e (meglio ancora) alcuni dati di esempio?
Simbamangu,

@Simbamangu Prima di tutto, grazie per aver provato una soluzione e averla condivisa con me. Anche se questa soluzione può funzionare in alcuni casi, come ha detto Victor, sarebbe difficile usarla quando le linee si separano dagli altri. In effetti, ciò accade ogni volta che le linee si dividono in strade diverse. I dati funzionano in questo modo: ho tutte le linee della rete Bus in diversi shapefile. Il "problema" è che tutti sono reallisticamente tracciati, quindi quando scelgo più di uno alla volta, si scontrano. Quindi il mio obiettivo è creare una mappa in cui sia possibile vedere visivamente l'intera rete. Modificherò il mio post.
Andreu Amoros,

3

Se per "opzione di aggancio" intendi che non puoi cambiare la geometria delle polilinee e puoi solo cambiare la loro simbologia, allora quello che hai descritto è quasi impossibile.

Dai tuoi esempi, sembra che tu stia cercando di rendere le polilinee in modo tale che le parti parallele si tocchino senza sovrapporsi, ad esempio avendo il confine tra le due linee parallele dividere equamente la loro distanza di separazione. Se consideriamo le rappresentazioni della polilinea come i loro buffer , allora puoi trovare dei casi (simili alla tua Fig. 4), in cui la stessa linea dovrebbe avere diverse larghezze di "buffer" in porzioni diverse (dettate dalle linee vicine più vicine). In altre parole, la larghezza del buffer dipende da altre polilinee e può variare in corrispondenza di diversi segmenti delle polilinee. Ma in genere la simbolizzazione utilizza solo informazioni / attributi della funzione stessa.

Ovviamente, puoi sempre usare un "buffer" a raggio fisso attorno alle linee e manipolare manualmente i vertici (o modificare i buffer) in modo che i contorni si aggancino l'un l'altro. Quindi i buffer rimarrebbero "spezzati" con lo zoom in / out, anche se questo è un sacco di lavoro manuale e potrebbe essere necessaria una regolazione se vengono aggiunte nuove linee.


Grazie per la risposta. Posso cambiare la geometria delle polilinee, ma poiché ci sono molte linee che si incrociano e molte combinazioni diverse, diventa molto laborioso e richiede tempo. Ho provato la soluzione buffer, ma è ancora più difficile della semplice modifica della forma delle linee, perché se devo definire la visualizzazione dipendente in tutti i segmenti di tutte le linee.
Andreu Amoros,

1
@AndreuAmoros. Questo è esattamente quello che stavo suggerendo. La modifica delle linee (o dei "buffer" associati) richiede davvero tempo, ma è necessario per la natura del requisito che questi buffer si agganciano.
Tinlyx,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.