J'essaie de recréer un tracé origine-destination comme celui-ci:
J'ai réussi à fusionner les données dans une table MSOA vers LAD et je peux dessiner une carte comme celle-ci pour l'une des MSOA d'origine.
Ce qui une fois que vous autorisez les distances (maintenant ridicules) que les gens du Peak District font pour se rendre au travail est proche.
Mais j'aime bien l'effet que l'auteur a obtenu en "écartant" les lignes. Évidemment, avec des flux de 522 et 371, je ne peux pas opter pour une seule ligne par banlieue, mais ce serait bien de produire un arc proportionnel de lignes pour montrer le nombre de personnes qui font le trajet.
Je pensais que je serais capable d'utiliser le générateur de géométrie, mais sans construction de boucle, je n'arrive pas à avancer.
la source
Réponses:
Un grand défi!
Cette réponse utilise principalement le générateur de géométrie et a été écrite dans QGIS 3.2. QGIS s'est écrasé (sans que j'aie enregistré!) Juste après avoir construit les lignes et j'ai presque abandonné, mais la liste d'expressions récemment utilisée a sauvé la journée - un autre bonus à l'utilisation du générateur de géométrie
J'ai commencé avec deux ensembles de points, une source et trois destinations. Les destinations sont étiquetées avec les décomptes:
J'ai ensuite généré des lignes reliant le point source à toutes les destinations à l'aide d'une couche virtuelle à l'aide du code suivant:
Ensuite, j'ai utilisé l'expression du générateur de géométrie suivante pour styliser les lignes:
Cela prend chaque ligne et applique les étapes suivantes:
tapered_buffer
pour comprendre pourquoi cela est nécessaire)En écrivant les étapes, je me rends compte que la conversion vers et depuis un tableau est inutile, et toutes les manipulations WKT peuvent être effectuées avec des expressions régulières. Cette expression est ci-dessous, et si la
tapered_array
fonction peut être remplacée par une autre, alors elle pourrait également être utilisée dans QGIS 2.18.la source
Votre question m'a rendu curieux.
Cette solution fonctionne uniquement pour QGIS 2.x dans la console Python
Comme mentionné dans mon commentaire, voici mon idée de créer l'arc de lignes avec Python.
J'ai une couche à deux points:
je. Un tenant le capital (id, capital)
ii. Un tenant les villes (id, ville, navetteurs)
Le nombre de navetteurs est "séparé en billets de banque" et ce seront les lignes qui construiront l'arc. Ainsi, 371 navetteurs sont une combinaison de 3x100, 1x50, 2x10 et 1x1 et au total 7 billets. Ensuite, les lignes sont stylisées par un style basé sur des règles.
Voici le code:
Le résultat pourrait ressembler à ceci:
MISE À JOUR: distinction homme / femme
Résultats en 4 couches mémoire.
Le résultat pourrait ressembler à ceci:
Une chose qui n'est pas idéale d'un point de vue cartographique:
La taille d'un arc de ligne peut être irritante à première vue, dans la mesure où un arc plus grand pourrait représenter plus de navetteurs. Un arc peut être plus grand avec moins de navetteurs (289 navetteurs / 11 billets) qu'un autre avec plus de navetteurs (311 navetteurs / 5 billets).
la source