Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sécurisation des intersections #406

Open
XioNoX opened this issue Jul 24, 2024 · 18 comments
Open

Sécurisation des intersections #406

XioNoX opened this issue Jul 24, 2024 · 18 comments

Comments

@XioNoX
Copy link
Contributor

XioNoX commented Jul 24, 2024

Merci pour cet outil ! J'envisage de l'utiliser pour deux projets sur Brest et ai une suggestion de fonctionnalité à ajouter.

De la même façon que les tronçons, il serait utile de pouvoir définir des points pour afficher les intersections à sécuriser. Ou autre problèmes... ponctuels sur une ligne/carte.

Dites moi ce que vous en pensez :)

@benoitdemaegdt
Copy link
Owner

Salut @XioNoX 👋

Merci pour cet outil ! J'envisage de l'utiliser pour deux projets sur Brest et ai une suggestion de fonctionnalité à ajouter.

Trop cool, hâte de voir ce que ça peut donner à Brest 🙌

De la même façon que les tronçons, il serait utile de pouvoir définir des points pour afficher les intersections à sécuriser. Ou autre problèmes... ponctuels sur une ligne/carte.

Il y a déjà une fonctionnalité presque silmilaire, ce qui fait que ça devrait être jouable oui.
À partir d'un certain niveau de zoom sur la carte, tu vois apparaitre un petit appareil photo. Si tu cliques dessus, tu vois apparaitre la photo du tronçon ou du projet de tronçon.
image

On pourrait donc tout à faire reprendre ce fonctionnement pour ajouter des points de danger (un panneau ⚠️ par exemple ?).
C'est également quelque chose qui nous a été remonté par Marseille :)

@TFCx
Copy link

TFCx commented Jul 25, 2024

On va en avoir besoin aussi côté Montpellier :) ça fait partie de ma todo list dans les semaines qui arrivent.

@benoitdemaegdt
Copy link
Owner

En terme de structure de donnée, ça pourrait prendre cette forme dans les geojson :

    {
      "type": "Feature",
      "properties": {
        "type": "danger",
        "name": "Intersection rue xxx et rue yyyy",
        "line": 1,
        "imgUrl": "https://cyclopolis.lavilleavelo.org/vl1/croix-luizet.jpeg",
        "description": "L'intersection entre la rue xx et la rue yyy n'a pas été traité dans le cadre de l'aménagement cyclable, et est donc particulièrement dangereuse. etc etc etc ..."
      },
      "geometry": {
        "type": "Point",
        "coordinates": [4.893801991148365, 45.78325660243033]
      }
    },

👉 imgUrl et la description seraient affiché au click sur l'icone, dans une petit popup (même format que quand on clique sur un tronçon ou un appareil photo).
👉 imgUrl serait probablement optionnel.
👉 un aspect sympa, c'est que c'est assez générique, et permet d'identifier un point de complexité, un danger temporaire, un danger permanent etc ...

Qu'en pensez-vous @XioNoX @TFCx ?

@XioNoX
Copy link
Contributor Author

XioNoX commented Jul 26, 2024

Rapide ! C'est super !

J'imaginais ça plutôt comme un segment dans la structure de données

  • imgUrl: +1 pour que ça soit optionnel
  • type: peut-être quelque chose comme le type des segments (pour potentiellement faire des stats ou les regrouper plus tard), et l'afficher (comme les segments) dans la popup. Ça peut être "danger" ou juste qu'un réaménagement est prévu/nécessaire avec une valeur générique comme "intersection"
  • status: encore comme pour les segments, ainsi que doneAt pour suivre la progressions de réalisation
  • line (optionnel), id (optionnel)
  • link (optionnel): pour plus d'infos

En terme d’icône peut-être commencer par en effet un point d'exclamation, ou quelque chose de plus neutre (un gros point de la couleur de la ligne, ou noir si pas de ligne). Visible dès des niveaux de zoom moins important que les photos. Et à terme peut être qu'il puisse être personnalisable (soit en fonction du type, soit en fonction du status)

@TFCx
Copy link

TFCx commented Jul 26, 2024

La structure proposée par Benoit me parait bien et suffisamment flexible.

Pour moi, j'en aurai besoin pour indiquer principalement toutes les intersections majeures le long d'une ligne (qui peuvent être dangereuses alors même que la ligne arrivant/partant est très bien réalisée). Et probablement faire des stats aussi affichée au niveau de la ligne).

Ne pas oublier l'id, vu qu'une intersection peut faire partie de plusieurs lignes :)

@benoitdemaegdt
Copy link
Owner

Rapide ! C'est super !

J'imaginais ça plutôt comme un segment dans la structure de données

  • imgUrl: +1 pour que ça soit optionnel
  • type: peut-être quelque chose comme le type des segments (pour potentiellement faire des stats ou les regrouper plus tard), et l'afficher (comme les segments) dans la popup. Ça peut être "danger" ou juste qu'un réaménagement est prévu/nécessaire avec une valeur générique comme "intersection"
  • status: encore comme pour les segments, ainsi que doneAt pour suivre la progressions de réalisation
  • line (optionnel), id (optionnel)
  • link (optionnel): pour plus d'infos

En terme d’icône peut-être commencer par en effet un point d'exclamation, ou quelque chose de plus neutre (un gros point de la couleur de la ligne, ou noir si pas de ligne). Visible dès des niveaux de zoom moins important que les photos. Et à terme peut être qu'il puisse être personnalisable (soit en fonction du type, soit en fonction du status)

Hello 👋
Pas bien sur de comprendre pourquoi tu verrais un segment, plutôt qu'un point ?
Ici, si on veut traiter les intersections + les dangers isolés, un point pourrait être suffisant non ?

Il y a un autre sujet en cours entre les différents contributeurs, c'est la représentation de la qualité des aménagements. Il y a des livraisons d'aménagements de très bonne qualité, mais aussi des couloir bus, voir des trucs catastrophiques et hyper dangereux. J'ai le sentiment qu'une partie de la solution ) ton problème sera aussi ici : mettre en avant des tronçons entiers qui sont dangereux.

@benoitdemaegdt
Copy link
Owner

J'ai dev' rapidement une première version. C'est dispo sur la code base.

exemple :

    {
      "type": "Feature",
      "properties": {
        "type": "danger",
        "name": "intersection xxx",
        "line": 1,
        "imgUrl": "https://cyclopolis.lavilleavelo.org/vl1/croix-luizet.jpeg"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          4.829734881247845,
          45.74049384250037
        ]
      }
    },
image image

pas encore de gestion de l'image dans le tooltip, ça viendra plus tard.

Pour info @TFCx @ThibautChd

@XioNoX
Copy link
Contributor Author

XioNoX commented Aug 11, 2024

Pas bien sur de comprendre pourquoi tu verrais un segment, plutôt qu'un point ?
Ici, si on veut traiter les intersections + les dangers isolés, un point pourrait être suffisant non ?

Je me suis mal exprimé, un point est suffisant, mais je suggérait qu'il ait des properties similaires aux segments (par exemple status et type (ce que t'as fais pour ce dernier), ou encore link pour le faire pointer vers la section correspondante du ligne-X.md. Par exemple un point pourrait avoir un status planned ou done. Pas trop sur de comment l'afficher sur la carte par contre mais il pourrait entre autres être pris en compte dans les divers statistiques.

Il y a un autre sujet en cours entre les différents contributeurs, c'est la représentation de la qualité des aménagements. Il y a des livraisons d'aménagements de très bonne qualité, mais aussi des couloir bus, voir des trucs catastrophiques et hyper dangereux. J'ai le sentiment qu'une partie de la solution ) ton problème sera aussi ici : mettre en avant des tronçons entiers qui sont dangereux.

Ça tombe bien ! Sans vouloir trop faire dérailler le sujet, je pense que Cyclopolis pourrait être un super outil pour suivre le schéma directeur vélo d'une agglomération, par exemple en créant une "ligne" virtuelle ou plusieurs "lignes" virtuelles par zones géographiques et y reporter les aménagements/objectifs prévus. Juste une idée pour l'instant.
Dans tous les cas, pouvoir reporter les aménagements faits mais non satisfaisants (peut être un simple status sloppy ou unsatisfactory serait suffisant ? Vient encore la question de comment l'afficher :)

J'ai dev' rapidement une première version. C'est dispo sur la code base.

Super, merci, je vais tester ça!

Édit: premiers retours rapidos:

  • Ça serait bien de les faire s'afficher a un niveau de zoom plus petit (zoomLevel > 13 me semble pas mal, mais je suppose qu'il peut y avoir débat
  • Et que ça s'affiche à tous les niveaux de zoom quand seulement la ligne en lien avec le point est affichée
  • Changer le curseur pour que l'utilisateur sache que c'est cliquable:
    map.on('mouseenter', `dangers`, () => (map.getCanvas().style.cursor = 'pointer'));
    map.on('mouseleave', `dangers`, () => (map.getCanvas().style.cursor = ''));

@TFCx
Copy link

TFCx commented Aug 11, 2024

Je vais essayer de tester ta MR pour notre futur utilisation.

Je trouve qu'on est arrivés au bout du nombre d'information qu'on peut représenter en // (environ 4/5/6 formes de traits maximum). De mon côté, j'ai décidé de séparer les autres informations (par exemple la qualité) sous formes de filtres qui changent les couleurs des segments. Mes testeurs trouvent ça beaucoup + pratique et intuitif. Du coup, je vais virer à terme les filtres par type d'aménagement (redondant et moins pratique).

Vous pouvez regarder ici le résultat : https://super-valkyrie-165512.netlify.app/carte-interactive

@benoitdemaegdt benoitdemaegdt self-assigned this Aug 12, 2024
@ThibautChd
Copy link
Collaborator

Salut tout le monde !

Je ressors ce sujet pour proposer de représenter les sections non satisfaisantes sur notre version lyonnaise.
Avec les informations sur le futur réseau cible qui s'affinent, il est temps de prendre en compte un nouvel attribut de conformité sur chaque tronçon. Pour faciliter la reprise des json existants, je propose un attribut binaire : si rien n'est renseigné, le tronçon est par défaut satisfaisant. Si un nouvel attribut "unsatisfactory" est renseigné sur un tronçon, il prend le statut "non satisfaisant" et la bordure blanche du tronçon apparaît sous la forme de "dents de requin" ou de pointillés roses de chaque côté, comme sur l'illustration ci-dessous.
image

Pour documenter le linéaire total non conforme, il sera nécessaire de faire évoluer le tableau de bord avec une proposition d'intégration simple ci-dessous :
image

Enfin, cela implique d'enrichir la tooltip de chaque tronçon sur le modèle de la version montpellieraine :
image

En parallèle, certains points problématiques vont subsister sur le réseau cible, et il va donc être nécessaire de faire la lumière dessus. Pour cela, je reprends exactement la proposition de Benoit ci-dessus que j'arrange à la charte LVV, pour ce rendu :
image

J'enrichis simplement le tooltip dédié, avec 4 niveaux d'informations : son type (carrefour, arrêt de bus), son nom, le détail du problème et enfin les conséquences de ce problème :
image

Je vais essayer de me plonger de le code pour voir ce que je suis capable de faire moi-même, mais je suis preneur d'un bon coup de main si ce sujet intéresse l'un de vous :)

@benoitdemaegdt
Copy link
Owner

Très fan de toutes ces idées @ThibautChd 👏

1/ Modélisation
👉 J'aime bien l'aspect binaire, c'est simple et ça évite de setup tout un système de notation.
👉 Je me demande juste si il ne faut pas une description, qui explique pourquoi ce n'est pas satisaisant.

2/ les dents de requins
👉 Très cool, ça montre bien le soucis de qualité, sans être trop invasif.
👉 Pas hyper sur de la faisabilité des dents de requin, mais il faut creuser le sujet.

3/ point de danger
👉 ça pour le coup on y est presque, il n'y a pas grand chose à rajouter pour que ça fonctionne comme sur ta capture d'écran !

@TFCx
Copy link

TFCx commented Nov 3, 2024

Ne pas oublier de vérifier l'effet sur des lignes dont la couleur "réseau" est rouge.

Sinon attention à rajouter des couches d'informations à une même visualisation. En réalité ce n'est pas très exploitable par les médias : on a eu l'exemple où même la visualisation de l'avancement du réseau avait été repris par un journal sous une code 3 couleurs (https://s3.hosteur.io/gazette-prod-public/gazetteWeb/662f4295514c09a4288b5116/articles/66ebb64a2cf042e49a4d4193/files/1128012/arte-du-lan-vlo.webp/). Et force est de constater que c'est bien + lisible. 🤔

Le reporting est très bien 👌De la même manière qu'on peut cliquer sur les points de danger, il me parait important de pouvoir donner les raisons de la non-satisfaction sur les tronçons.

N'avoir que 2 états (normal et problématique) est probablement pour + simple à gérer (mais bon, à nouveau, à Lyon, la métropole fait les choses quand même plutôt bien dès le début... à Montpellier on a limite du trottoir cyclable de 1.4m de large qui côtoie de la bande cyclable qui côtoie une PC unidir sécurisée avec bordures pardonantes de 2m de large 😭)

(Et à noter comme d'hab, nous on a des infrastructures qui peuvent être différentes dans les 2 sens (PC d'un côté, mixité de l'autre)... mais ça me parait être très complexe à gérer).

@ThibautChd
Copy link
Collaborator

Très fan de toutes ces idées @ThibautChd 👏

1/ Modélisation 👉 J'aime bien l'aspect binaire, c'est simple et ça évite de setup tout un système de notation. 👉 Je me demande juste si il ne faut pas une description, qui explique pourquoi ce n'est pas satisaisant.

2/ les dents de requins 👉 Très cool, ça montre bien le soucis de qualité, sans être trop invasif. 👉 Pas hyper sur de la faisabilité des dents de requin, mais il faut creuser le sujet.

3/ point de danger 👉 ça pour le coup on y est presque, il n'y a pas grand chose à rajouter pour que ça fonctionne comme sur ta capture d'écran !

La description qui explique pourquoi ce n'est pas satisfaisant est déjà renseignée dans nos .md, dans les cadres colorés de type "danger". Cette feature vient juste relier ces cadres colorés et une symbolique sur la carte et à un statut "unsatisfied" du tronçon. Donc pour moi ce sujet est déjà traité.

Concernant les dents de requins, si la faisa technique est compliquée (ce qui paraît probable), on pourra les passer en pointillé simples roses. A tester mais je pense que le rendu sera convenable.

Plus qu'à creuser le sujet et à générer quelques rendus tests avant de merger 😉

@ThibautChd
Copy link
Collaborator

Ne pas oublier de vérifier l'effet sur des lignes dont la couleur "réseau" est rouge.

Sinon attention à rajouter des couches d'informations à une même visualisation. En réalité ce n'est pas très exploitable par les médias : on a eu l'exemple où même la visualisation de l'avancement du réseau avait été repris par un journal sous une code 3 couleurs (https://s3.hosteur.io/gazette-prod-public/gazetteWeb/662f4295514c09a4288b5116/articles/66ebb64a2cf042e49a4d4193/files/1128012/arte-du-lan-vlo.webp/). Et force est de constater que c'est bien + lisible. 🤔

Le reporting est très bien 👌De la même manière qu'on peut cliquer sur les points de danger, il me parait important de pouvoir donner les raisons de la non-satisfaction sur les tronçons.

N'avoir que 2 états (normal et problématique) est probablement pour + simple à gérer (mais bon, à nouveau, à Lyon, la métropole fait les choses quand même plutôt bien dès le début... à Montpellier on a limite du trottoir cyclable de 1.4m de large qui côtoie de la bande cyclable qui côtoie une PC unidir sécurisée avec bordures pardonantes de 2m de large 😭)

(Et à noter comme d'hab, nous on a des infrastructures qui peuvent être différentes dans les 2 sens (PC d'un côté, mixité de l'autre)... mais ça me parait être très complexe à gérer).

Le fait que la carte ne soit pas facilement exploitable dans les médias est moins un problème pour nous car la forme très étalée nord-sud de la Métropole de Lyon rend de fait son partage sur papier assez complexe. Mais je pense qu'on finira par utiliser votre vue tridimensionnelle du réseau sous les angles avancement/typologie/qualité à terme car ça permet de faire différents types de rendu intéressants. Ce n'est de toute manière pas incompatible avec ce qu'on décrit ci-dessus.

On a aussi quelques tronçon avec une typologie d'aménagement différentes dans un sens et dans l'autre. C'est assez négligeable à l'échelle de notre réseau lyonnais donc on a préféré simplifier, mais à terme faudra quand même que j'arrive à vous pondre une proposition UI pas trop moche qui permette de faire ce distinguo. 😉

@XioNoX
Copy link
Contributor Author

XioNoX commented Nov 11, 2024

Je recopie mon commentaire de #431, en effet c'est mieux par ici :)

Il ne faut pas croire, à Lyon aussi il y aura des tronçons pas top, issus majoritairement d'existant médiocre qui ne sera pas amélioré à court-terme. On a donc aussi dans les tuyaux de gérer la qualité, mais ni comme @paulop33 avec ses 6 niveaux, ni comme @TFCx avec ses 4 niveaux, mais de manière plus binaire avec 3 niveaux (OK, NOK, inconnu). Tout est détaillé ici : #406 (comment)
C'est là qu'on voit qu'en fonction des sensibilités de chacun sur la qualité, la feature "quality" va vite diverger d'une agglo à une autre et qu'il sera difficile de faire un composant standard qu'il suffirait d'afficher ou masquer au besoin.

Est-ce que ce n'est pas justement le fruit d'avoir eu plusieurs forks à se développer en parallèle ? Je pense qu'on a beaucoup à y gagner à trouver un compromis. Par exemple, partir sur 4 niveaux (c'est sur que 6 ça me parait un peu trop :) ) vu que c'est l’implémentation qui existe déjà en "prod" et que si une ville ne veut pas utiliser un des niveaux, alors juste elle ne l'utilise pas ? Ou avec une variable bascule le type d'affichage ?

@ThibautChd
Copy link
Collaborator

Je comprends tout à fait ton appel à trouver une base commune, mais pour la version lyonnaise avoir seulement 2 niveaux de qualité permet de minimiser le boulot de reprise des tronçons. On en a plusieurs centaines et tous les reprendre un par un avec 3 niveaux de qualité serait très lourd. Alors que modifier seulement ceux qui sont non satisfaisant, en passant les autres en satisfaisant par défaut est bien plus simple pour les petits bénévoles que nous sommes.

@paulop33
Copy link
Contributor

Je comprends tout à fait ton appel à trouver une base commune, mais pour la version lyonnaise avoir seulement 2 niveaux de qualité permet de minimiser le boulot de reprise des tronçons. On en a plusieurs centaines et tous les reprendre un par un avec 3 niveaux de qualité serait très lourd. Alors que modifier seulement ceux qui sont non satisfaisant, en passant les autres en satisfaisant par défaut est bien plus simple pour les petits bénévoles que nous sommes.

La base commune peut être la version lyonnaise. Libre à chacun de faire évoluer la fonctionnalité, ensuite.
Je ne vois aucun soucis à adapter mon draft de PR (c'est fait pour ça) afin que de répondre à la version lyonnaise.
Le "satisfaisant par défaut" me pose davantage problème. Je préfère passer sur chacun de vos tronçons pour ajouter cette valeur, si besoin.

@benoitdemaegdt
Copy link
Owner

Le "satisfaisant par défaut" me pose davantage problème. Je préfère passer sur chacun de vos tronçons pour ajouter cette valeur, si besoin.

Je confirme qu'il n'y aura pas de "pas de valeur = satisfaisant". ce genre de pattern créé de la connaissance implicite, et 1 an plus tard on ne sait plus ou on en est.
Ce qu'on fera probablement, c'est de passer un script qui rajoutera la valeur satisfaisante à tous les tronçons, puis on éditera seulement les 3-4 qui ne le sont pas à Lyon 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants