Test d'autre mode de représentation

Bonjour,

La barre des 100 millions de photos vient d’être franchie :tada:

La rançon de ce succès est qu’il devient, sur certaines zones, de plus en plus difficile de présenter les données disponibles de manières claires et la génération des tuiles vectorielles prend de plus en plus de temps.

Voici par exemple un échangeur particulier bien couvert

J’ai fait un petit test rapide, pour voir ce que ca rendrait de présenter les données de manière agrégées en premier abord. Dans mon esprit, il sera toujours possible d’accéder aux tuiles telles qu’existante maintenant, mais la première interaction (si aucun filtre n’est défini), pourrait se faire via des surfaces couvertes plutôt que des points de position de photo. L’idée serait peut-être de cliquer sur une des grilles hexagonale, et qu’on sélectionne par défaut la meilleure photo (en se basant sur un mix de qualité et de “fraicheur” de la donnée ?) pour rentrer dans la visionneuse (et qu’on affiche ensuite sur la minicarte le détail de toutes images aux alentours ?).

Sur la même zone que l’échangeur, ca donne :

Ce que ca donne:

Sur paris, sur différents niveaux, ca donne :
zoom 17:

zoom 15:

zoom 9:

zoom 4:

Voici l’url de l’investigation: https://h3.panoramax.xuan.codeureusesenliberte.fr/

:warning: il ne faut pas trop attendre de cette démo, c’est simplement un test pour voir si ca vaut le coup de creuser l’idée, il faudra, si on décide que c’est le cas, repenser les interactions, améliorer les styles, voir ce que ca veut dire pour les filtres, …

Technique

Côté technique, le test se base sur le fichier parquet d’export de données, et projette les 100 millions de photo sur une grille h3 via duckdb, puis une API tape directement sur la base duckdb pour servir les tuiles, ce qui peut expliquer le manque de fluidité.

Votre avis ?

Vous en pensez quoi ? ca vaut le coup d’essayer de voir ce que donne les interractions, ou ca fait vraiment trop “pixelisé” ?

3 Likes

On a un moyen d’identifier la 100 millionnième photo ?

2 Likes

Je vais regarder… ça doit pouvoir se déterminer depuis le meta-catalogue.

Super intéressant comme visualisation, mais est-ce que la dimension des hexagones est pertinente quand elle devient inférieure à la précision de la localisation ? (I.e. voir des hexagones colorés sur des bâtiments, c’est bizarre)

Autre idée de visualisation : une heatmap des différentes traces (la visualisation linéaire me paraît plus pertinente qu’une visualisation ponctuelle), potentiellement pondérées par la précision de localisation.
Je suppose que cela ferait plus ressortir les linéaires de rues, en permettant potentiellement de distinguer les sens de circulation, les pistes cyclables, etc.

Se baser sur le filaire de voirie est effectivement une autre possibilité intéressante, mais ca ajoute la difficulté de:

  • choisir le bon filaire de voirie en fonction de l’instance (osm évidement pour la plupart des instances, mais pas pour l’instance de l’IGN par exemple), et l’importer (ce qui va demander pas mal de calcul, de place dans la base de donnée, et compliqué le déploiement d’une instance)
  • du coup si on a plusieurs référentiels, ça complique les choses au niveau du catalogue fédéré
  • ca ne va pas être facile, justement avec les précisions des GPS de matcher les images sur “le bon filaire de voirie” (route, piste cyclable, trottoirs, voies navigables…) sachant que le mode de transport n’est que peu rempli.

À mon avis, il faut n’envisager que ces carreaux sur les zooms à l’échelle d’une rue ou plus haut, il y a un moment (zoom 15 ou 16 ?) où on reviendra sur un affichage classique avec des séquences et photos individuelles.

3 Likes

pour faire raccord avec le sujet evoqué ici y aurait il possibilité de proposer plusieurs mode de représentations . par exemple si nous sommes en mode “ carte routiere “ , une seule sequence par route affichée classiquement celle qui aurait été taggée comme prioritaire , si on n’est pas en mode “carte routière” le nouveau affichage ci dessus ?

le mode “carte routière” serait un mode d’affichage représentant un ensemble de filtre déjà prédéfini , mais ayant l’avantage d’être accessible par un simple bouton .

il pourrait y avoir aussi un mode “evenement “

1 Like

C’est vraiment pas aussi simple !

Qui va décider qu’une séquence est prioritaire ? Sur quels critères ?
Comment fait-on quand des séquences font doublons sur certaines portions mais pas d’autres ?

Je comprend le besoin, mais je ne pense pas que ça soit la solution, mais ça peut être une partie de la solution.

il y aurait le prioritaire au niveau d’un utilisateur ( il doit lui même selectionner ) , et le prioritaire au niveau par exemple ign ou osm selon un cahier des charges à respecter ,et un ensemble de sequence à fournir c’est à dire que c’est l’ign /osm qui fournit la liste des sequences représentant des routes qu’elles souhaitent avoir avec comme critères la densité des images ( tu avais dis 5 m en agglo , 10 mètres hors agglo ) , une qualité d’image et de positionnement ,donc comme elle fixe la sequence il ne peut pas y avoir de demi recouvrement , de doublon . c’est la sequence au complet et rien d’autres .

edit: j’utilise le mot prioritaire , mais on pourrait utiliser le mot/tag “carte_routière” à la place .

Il me semble que la proposition de @LaTeteDansLeGuidon n’est pas de s’appuyer sur un filaire existant, mais de produire une heatmap à la Strava ( Carte mondiale des activités Strava ), qui est très lisible.

2 Likes

Effectivement, mon idée n’est pas de s’appuyer sur le filaire des routes, mais bien sur le filaire des données Panoramax, qui en zone densément photographiée, devrait s’aligner sur les voies réelles (cf Strava)

Facile à intuiter, probablement difficile à mettre en oeuvre, mais j’imagine qu’en pondérant par la précision de la mesure et la fraîcheur des images on peut faire ressortir les données les plus “pertinentes”, qui permettrait d’avoir accès aux images en un clic, un peu comme sur cartes.app, où on ne sélectionne pas image par image, mais le clic a une hitbox assez large

Je pense aussi qu’il faut bien différencier l’usage de niche qu’on peut avoir, à vouloir choisir précisément l’image à afficher, notamment pour voir l’évolution du terrain etc, vs l’usage “grand public” qui consisterait à avoir l’image “la plus pertinente” en un clic, comme peut le proposer un certain géant américain Google qui tente de concurrencer Panoramax avec ses images de terrain :sweat_smile:

Hello,
Merci @antoine-de de te repencher sur la visualisation en zone dense, c’est un sujet d’intérêt général :stuck_out_tongue:

Réponse rapide

OUI pour grouper les photos par zones, mais NON à ce que l’utilisateur doive cliquer pour afficher les photos.
Je suggère de réserver le clic pour ouvrir une photo, sinon ça devient fastidieux.

Réponse détaillée

Pour fixer cet apparent dilemme, on peut imaginer plusieurs alternatives :
1. charger les images en plus des hexagones dans une zone centrale

Un déplacement par l’utilisateur permet de réaliser très rapidement ce comportement, que le cercle soit matérialisé ou pas.

Point positif : limite la quantité et donc le poids des images chargées.
Point négatif : ne permet pas une meilleure visualisation en zone dense, voire empire la situation avec des hexagones superposés aux photos

2. Variante avec des hexagones uniquement visibles hors du cercle central pour fixer les problèmes de visibilité

Mais on pourrait aussi imaginer aussi se passer de ces groupements par zones (mais c’est plus long à développer, et je comprends pourquoi @antoine-de tu essayes de t’en passer pour l’instant :wink: ) :

3. N’afficher que les “meilleures photos” par défaut cf. Dynamic filtering of best pictures (#182) · Issues · Panoramax / Clients / Web viewer · GitLab

3 bis. Repositionner les photos sur un filaire et n’afficher que les “meilleures photos” cf. Possible feature: Snap to road

4. Afficher une timeline filtrante Add timeline to navigate through history (#340) · Issues · Panoramax / Clients / Web viewer · GitLab

5. Réduire la zone où les photos s’affichent, par exemple avec une délimitation plus petite que l’écran entier :

Ma préférence va à la solution 3. complétée plus tard par la 4. et plus tard encore par la 3 bis. mais dans un contexte de ressources très limitées, pourquoi pas la 2.

Ah, le clic pour afficher les points, c’est juste dans ce POC pour voir les positions précises des images, mais je ne voyais pas garder ca dans une version finalisée. Je pensais plus, au clic sur une zone, afficher “la meilleure photo”, et peut-être afficher le détail des positions des photos (comme maintenant) sur des gros zooms (genre 17-18?)

On a creusé un peu cette représentation par hexagones aujourd’hui en équipe.

Elle permettrait de pouvoir appliquer certains filtres dès les premiers niveaux de zoom.
Des filtres non combinables et simples: 360 ou pas, niveau de qualité minimal, age maximal.

Pour la bascule entre le rendu hexagone et le rendu détaillé, je pense qu’on sera un peu comme avec la bascule actuelle, c’est à dire progressive et qu’on arrivera au détail quelques crans de zoom plus tard.

L’idée de ce premier PoC est vraiment de voir visuellement ce que ça donne en fonction des zooms, l’interaction est minimaliste.

2 Likes