MTES-MCT / dialog

Intégration de la réglementation de circulation dans les solutions numériques
https://dialog.beta.gouv.fr
GNU Affero General Public License v3.0
9 stars 1 forks source link

Filtrer les restrictions par leur localisation #1058

Open johanricher opened 3 weeks ago

johanricher commented 3 weeks ago

Description

Dans le cadre de #202

2 options envisagées et à investiguer

Exploration

En cours.

florimondmanca commented 3 weeks ago

Option 1 - Filtrage par géométrie

Principe :

Avantages / Bénéfices

Inconvénients / Risques / Questions ouvertes

Option 2 - Filtrage par métadonnées de localisation

Principe :

Avantages / Bénéfices

Inconvénients / Risques

johanricher commented 3 weeks ago

Là on aborde des questions sur la faisabilité technique, ce qui est indispensable pour décider ce qu'il est préférable d'implémenter, mais si on prend un peu de recul se pose aussi la question de comment va être interprêté et utilisé un tel champ de recherche.

Est-ce que si je tape "paris" dans la recherche je m'attends à ce que

  1. La carte se positionne sur Paris mais sans que ce positionnement ait un effet sur le filtrage des données sur Paris (le comportement actuel sur la page carte, celui d'Airbnb, etc.)
  2. La carte se positionne sur Paris et n'affiche que les restrictions dont la géométrie recouvre au moins partiellement la géométrie du lieu recherché (proposition discutée ici avec l'option 1 de filtrage par géométrie)

Dans ce scénario de filtrage par géométrie, quel est le comportement si je fais une recherche sur une rue ou une adresse ?

On a une ambiguité d'UX entre le filtrage des restrictions par leur localisation et sur le positionnement de la carte (qui doit ou pas changer le filtrage).

Il me semble nécessaire de bien distinguer ces aspects d'UX (positionnement de la carte et filtrage par localisation).

C'est pour ça que Je propose de privilégier l'option 2 et de faire une fonctionnalité de filtrage des restrictions par "zone géographique" (c'est à dire un ou plusieurs filtres parmi d'autres comme le filtre par type, par organisation, etc.) et de laisser les utilisateurs positionner la carte par un zoom sur la carte (comme sur l'Annuaire des entreprises) ou éventuellement par un champ "Chercher un lieu", avec la même implé que le champ de recherche actuel, mais bien distinct des fonctionnalités de filtrage des restrictions, sur la carte, afin de bien enlever toute ambiguité UX.

Mes réponses sur l'option 1 de filtrage par géométrie :

Quel service ou base de données permettrait d'obtenir une liste "d'entités" et leur géométrie "réelle" (aire géographique, linéaire, point) ?

Ca existe mais c'est pas forcément exhaustif donc du point de vue utilisateur ça risque de poser des problèmes.

L'API Géo (découpage administratif) renvoie des contours en GeoJSON pour certaines entités (communes et EPCI je crois)

L'équipe data.gouv.fr publie des GeoJSON sur les contours administratif mais, pareil, pas forcément exhaustif

Sur l'option 2 :

Dans cette approche, l'UX "champ de recherche unique" complique la chose, si on compare à une UX où on aurait 1 champ par colonne (1 champ "Commune", 1 champ "Nom de la voie", 1 champ "Numéro de route"), puisque dans ce cas-là on pourrait largement réutiliser les autocompletes du formulaire

Je proposerais d'avoir un seul champ "Filtrer les restrictions par leur localisation" dont le comportement serait par exemple :

Ne permet pas de faire remonter les données type "RawGeoJSON", donc ça exclut les données JOP, les données Litteralis et à l'avenir d'autres données obtenues sans géocodage DiaLog

Pour moi ces cas d'usage dont tu parles ne sont pas directement liés à la dimension géographique des données DiaLog et pourraient bien mieux être adressés par un champ de recherche plein texte (tel que je le propose sur #202), un filtre par organisation, et éventuellement d'autres filtres (pourquoi pas par "source", si on ajoutait une métadonnée sur le logiciels d'où proviennent les données qu'on intègre)

Dédoublement partiel de la logique de recherche présente dans les formulaires

Pas compris

Comment indiquer pourquoi tel élément a été retenu ? (Sur la liste de l'annuaire des entreprises, il y a des termes surlignés en jaune, ce que le FTS de Postgres peut nous fournir ; mais sur une vue carte, comment le matérialiser ?)

Ca ne me semble pas poser problème sur la vue carte de l'annuaire des entreprises.

florimondmanca commented 3 weeks ago

Je réponds en vrac à différents points

On a une ambiguité d'UX entre le filtrage des restrictions par leur localisation et sur le positionnement de la carte (qui doit ou pas changer le filtrage).

Oui

Pour le centrage de la carte, d'un point de vue utilisateur ça me semblerait logique que n'importe quel champ "lieu" ait une action de centrage

Mais si on veut juste centrer, ça se ferait plutôt par un petit champ sur la carte, en mode widget ?

L'équipe data.gouv.fr publie des GeoJSON sur les contours administratif mais, pareil, pas forcément exhaustif

Ces fichiers ont quand même l'air exhaustifs, il y a 35 074 features qui couvrent les 98 codes départements, sachant que (source wikipédia) il y a 35 028 communes au total (hexagone et outre-mer)

Avec un tel fichier, on pourrait implémenter un filtrage géométrique en recherchant une commune. Ce que je trouverais déjà très intéressant et peu sujet à ambigüité !

Et se restreindre aux communes résoudrait la question "Dans ce scénario de filtrage par géométrie, quel est le comportement si je fais une recherche sur une rue ou une adresse ?"

(Est-ce qu'une recherche par rue était d'ailleurs si intéressant comme cas d'usage ? Sachant que dans la rue il faut inclure la ville sinon on va afficher les restrictions de toutes les "rue de la république" de France)

Si je cherche un département, ça filtre sur toutes les restrictions avec une localisation associée à ce département (donc seulement des restrictions sur une "RD")

Petite attention, pour les routes numérotées, le champ qu'on a c'est le "gestionnaire" (ce qui inclut les départements mais pas que)

si on ajoutait une métadonnée sur le logiciels d'où proviennent les données qu'on intègre

Pour info, on a déjà un tel champ source, qui vaut dialog, eudonet_paris, bacidf, jop ou litteralis aujourd'hui.

aureliebaton commented 3 weeks ago

En lisant vos commentaires à tous les deux (merci pour tous ces détails, même si beaucoup m'échappe), j'ai du mal à trancher pour l'une ou l'autre option. Ce qui me semble important c'est de répondre au cas d'usage : "Quelles sont les restrictions près de chez moi ou sur ma commune ?". Il est important que le champ de recherche puisse aider à la localisation (avec l'autocomplétion pour éviter aussi les erreurs de saisie) sur la vue carte et la vue liste. OK ça vous aide pas tellement ;)

Autre question : Est-ce que l'une ou l'autre option est plus "coûteuse" que l'autre en terme de performance, écoconception, etc ?

aureliebaton commented 3 weeks ago

Je sais pas si ça peut aider mais j'ai fait une petite liste de cas d'usage et utilisation potentielle de la carte et listing. Ce n'est pas exhaustif, mais moi ça m'aide ;)

-- En tant qu’agent public, je veux voir les restrictions de circulation sur mon territoire.

  1. Sur la vue carte, je rentre le nom de ma ville dans le champ de recherche (ex : Rouen).
  2. Je vois de nombreuses restrictions s’afficher sur la carte.
  3. Je passe à la vue liste pour avoir une vue d’ensemble des restrictions (les résultats sont définis en fonction de ce qui est entré dans le champ de recherche indépendamment du zoom)
  4. Je peux affiner ma recherche sur une rue spécifique ou faire un CTRL F dans la page ;)
  5. Par défaut l’ordre des restrictions est défini par la date (période d’application) et par ordre alphabétique des rues ? Un filtre de type “sort by” pourrait être dispo en haut de la liste ?


En tant qu’agent de mairie, je veux voir les restrictions sur ma commune afin de communiquer avec les habitants (exemple partage du lien DiaLog ou intégration de la carte sur le site de la mairie).
(Voir ci-dessus)

En tant qu’entreprise de travaux, je veux voir si les travaux sur lesquels je vais travailler sont bien indiqués sur la carte et aux bonnes dates.

  1. Sur la vue carte, je rentre le nom de la rue et la ville dans le champ de recherche (ex : Boulevard des Belges, 76000 Rouen).
  2. La carte zoom sur la zone, je vois les restrictions sur le boulevard et les autres travaux potentiels dans la zone.

En tant qu’entreprise de transports publics, je veux voir les travaux prévus sur mon territoire afin d’anticiper les déviations.

  1. Sur la vue carte, je rentre le nom de la ville.
  2. Je passe à la vue liste pour avoir la vue globale des rues/voies impactées et si elles sont sur les trajets des bus
  3. J’identifie les rues qui me concernent et je les copie/colle pour les transmettre, les rentrer dans mon système de gestion, etc.

En tant qu’agent public, je veux vérifier que les restrictions publiées sont bien affichées sur la carte dans mon territoire.

  1. Sur la vue carte, je rentre le nom de la rue et la ville dans le champ de recherche (ex : Boulevard des Belges, 76000 Rouen).
  2. La carte zoom sur la zone, je vois les restrictions et je clique pour voir les détails.

En tant qu’usager de la route, je veux voir les perturbations près de chez moi pour anticiper mes trajets.

  1. Sur la vue carte, je rentre le nom de la rue et la ville dans le champ de recherche (ex : rue Arthur Duval, 76000 Rouen).
  2. Je vois les perturbations autour de chez moi.
florimondmanca commented 3 weeks ago

En tant qu’agent de mairie, je veux voir les restrictions sur ma commune afin de communiquer avec les habitants (exemple partage du lien DiaLog ou intégration de la carte sur le site de la mairie).
(Voir ci-dessus)

Est-ce que ce cas serait mieux / plus efficacement / plus robustement traité par la reprise du filtre "organisation" sur la vue carte ?

En tant qu’entreprise de travaux, je veux voir si les travaux sur lesquels je vais travailler sont bien indiqués sur la carte et aux bonnes dates.

Dans ce cas on a donc bien seulement un zoom sur la carte ? Je suis d'accord que c'est bien de ne pas filtrer car ça permet de voir ce qu'il se passe dans les environs

Au final dans ta description on dirait que

  1. Le filtrage serait surtout quand on cherche une commune ; quand on cherche une rue on va plutôt vouloir zoomer en gardant l'aperçu des alentours
  2. Le filtrage est bien + important côté liste que côté carte ?
aureliebaton commented 3 weeks ago

En tant qu’agent de mairie, je veux voir les restrictions sur ma commune afin de communiquer avec les habitants (exemple partage du lien DiaLog ou intégration de la carte sur le site de la mairie).
> (Voir ci-dessus)

Est-ce que ce cas serait mieux / plus efficacement / plus robustement traité par la reprise du filtre "organisation" sur la vue carte ?

AB : Effectivement, le filtre Organisation fait partie des filtres que nous avions envisagés mais pour l'instant que nous n'avions pas priorisé (la recherche étant prioritaire).

En tant qu’entreprise de travaux, je veux voir si les travaux sur lesquels je vais travailler sont bien indiqués sur la carte et aux bonnes dates.

Dans ce cas on a donc bien seulement un zoom sur la carte ? Je suis d'accord que c'est bien de ne pas filtrer car ça permet de voir ce qu'il se passe dans les environs

AB : Oui c'est exact.

Au final dans ta description on dirait que

1. Le filtrage serait surtout quand on cherche une commune ; quand on cherche une rue on va plutôt vouloir zoomer en gardant l'aperçu des alentours

2. Le filtrage est bien + important côté liste que côté carte ? 

AB: Quand tu parles de "filtrage" tu parles pas des filtres sur le côté ? Tu peux préciser ce que tu entends par filtrage dans ce cas ?

florimondmanca commented 3 weeks ago

@aureliebaton

AB: Quand tu parles de "filtrage" tu parles pas des filtres sur le côté ? Tu peux préciser ce que tu entends par filtrage dans ce cas ?

Je veux parler du fait de cacher les restrictions qui ne correspondent pas à la recherche par localisation

Sur la carte il n'est peut-être pas si important de cacher les points / linéaires de restrictions qui ne sont pas là où on a recherché, on peut se contenter de zoomer

Mais sur la liste, forcément on ne va afficher que ce qui nous intéresse

aureliebaton commented 3 weeks ago

@aureliebaton

AB: Quand tu parles de "filtrage" tu parles pas des filtres sur le côté ? Tu peux préciser ce que tu entends par filtrage dans ce cas ?

Je veux parler du fait de cacher les restrictions qui ne correspondent pas à la recherche par localisation

Sur la carte il n'est peut-être pas si important de cacher les points / linéaires de restrictions qui ne sont pas là où on a recherché, on peut se contenter de zoomer

Oui tout à fait, c'est mieux de voir de qu'il y a autour. Les cacher serait perturbant, surtout qu'on va ensuite bouger sur la carte et on s'attend à voir toutes les restrictions là on on bouge (c'est pas très clair ce que je dis mais je me comprends ;)

Mais sur la liste, forcément on ne va afficher que ce qui nous intéresse