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

Gestion des fonds de cartes Online et fonds par défaut #4

Closed
DonovanMaillard opened this issue Nov 26, 2020 · 5 comments
Closed

Gestion des fonds de cartes Online et fonds par défaut #4

DonovanMaillard opened this issue Nov 26, 2020 · 5 comments
Labels
enhancement New feature or request

Comments

@DonovanMaillard
Copy link
Collaborator

DonovanMaillard commented Nov 26, 2020

Une amélioration de la gestion des fonds de carte sur occtax mobile est sur le point de démarrer. Les objectifs identifiés :

Actuellement les pistes privilégiées sont :

  • Dans la configuration, définition de multiples sources qui peuvent être online ou offline

  • Une source par défaut est définie pour les fonds offline (appliquée en premier)

  • Une autre source par défaut est définie pour les fonds online : elle prendra le relai si aucun fond offline ne permet de répondre (zoom, lieu etc non couvert par les fonds embarqués, voire aucun fond embarqué). Ces sources renvoient vers des serveurs wms/wmts, OSM sera configuré par défaut.

  • Un ensemble d'autres sources, offline ou online, peuvent être définies et ne sont pas par défaut : dans ce cas c'est l'utlisateur qui pourra choisir de switcher vers cette source

  • Une source offline peut être soit un fichier mbtiles unique, soit une collection de fichiers qui se complètent
    /!\ Si les collections sont mal construites, si deux fichiers peuvent répondre au même endroit pour un même niveau de zoom, un effet de mozaïque pourra arriver : chaque fichier pouvant fournir des tuiles /!\

  • Enfin, les dernières sources "superposables" sont toujours affichables/masquables comme aujourd'hui : mailles, secteurs, communes etc.

  • Un paramètre dans l'interface utilisateur permet d'activer/désactiver la récupération des fonds de carte en ligne pour permettre à chacun de s'adapter en fonction de son équipement.

Ces développements seront faits par @sgrimault

@camillemonchicourt
Copy link
Member

Des précisions sur ce qui a été fait pour le moment par @sgrimault pour les fonds offline :

  • Par défaut, l'application va chercher à utiliser le fond en ligne (OSM) si aucun n'est configuré.
  • L'ajout d'un fond en ligne consiste à définir une couche dans la partie layers dont l'attribut source est simplement l'URL de base du fond (par exemple : https://a.tile.openstreetmap.org). Le label est juste là pour lui donner un petit nom. Ensuite dans la partie properties, il faut indiquer le zoom min et max de la source (par exemple 0 et 19), le format des tuiles (par défaut : image/png) et leurs tailles (par défaut : 256px).
  • On ne donne que l'URL de base pour un fond en ligne (par exemple : https://a.tile.openstreetmap.org), Coté carte, la résolution des tuiles se fait au "format" ZXY (exemple pour une tuile : https://a.tile.openstreetmap.org/zoom/x/y).
  • Contrairement aux autres couches, les fonds en ligne sont exclusifs et il ne peut y avoir qu'un seul visible à la fois. Mais rien n'empêche d'en définir plusieurs :) l'utilisateur pourra alors choisir entre ces couches depuis le panneau de sélection des couches.
  • La partie layers a légèrement évolué et comporte maintenant l'attribut properties qui n'est qu'un simple "dictionnaire" de clés/valeurs. On va retrouver notamment la définition des styles pour les couches vectorielles.
  • Le fond en ligne s'affichera toujours "en dessous" des fonds embarqués : couche(s) vectorielle(s) > fond(s) tuilé(s) défini(s) localement > fond en ligne. Si on a pas accès à Internet (ou perte d'accès), le cache des tuiles prend le relais et affichera ce qu'il peut sachant que de toute façon les fonds embarqués continueront à s'afficher normalement.

@camillemonchicourt
Copy link
Member

@sgrimault, quand tu dis :

Le fond en ligne s'affichera toujours "en dessous" des fonds embarqués

Cela veut dire qu'ils seront quand même chargés (et donc téléchargés par le réseau) même si il y a un fond offline par dessus ? Cela peut consommer de la data inutilement si c'est le cas.

Si on a pas accès à Internet (ou perte d'accès), le cache des tuiles prend le relais

Cela veut dire que les fonds online sont mis en cache quand on les télécharge et qu'on peut ensuite y accéder même sans connexion internet ?

@sgrimault
Copy link
Collaborator

Cela veut dire qu'ils seront quand même chargés (et donc téléchargés par le réseau) même si il y a un fond offline par dessus ? Cela peut consommer de la data inutilement si c'est le cas.

Oui si coté configuration on accepte l'utilisation du fond en ligne par défaut ("OSM", activé par défaut). Coté fichier de paramétrage, ça se fait via l'attribut use_default_online_tile_source ou directement via l'écran de paramétrage de l'application.

Cela veut dire que les fonds online sont mis en cache quand on les télécharge et qu'on peut ensuite y accéder même sans connexion internet ?

Oui

@DonovanMaillard
Copy link
Collaborator Author

DonovanMaillard commented Mar 4, 2021

Bonjour ,

Suite à nos échanges cet après-midi : un point d'avancement + quelques décisions prises en complément de la pre-release actuelle :

  • Le code de l'application n'intégrera pas "en dur" un fond en ligne par défaut : tous les fonds de carte se configureront de la même manière dans le fichier settings.json . En revanche, le fichier settings.json "type" fourni par défaut avec l'application intègrera le fond OpenStreetMap pour exemple.
  • Un paramètre reste disponible (actuellement dans la page "paramètre" et dans l'onglet de choix carto) pour activer ou non les fonds de carte en ligne sur le terminal. Cela permettra à un utilisateur de le désactiver sur son terminal même si la configuration serveur propose des fonds en ligne. Il serait intéressant que ce paramètre ne soit disponible que si la configuration serveur propose des fonds en ligne, mais à voir la charge de travail que cela peut rajouter pour Sébastien.
  • L'application mémorisera les choix de carte des utilisateurs pour proposer systématiquement le dernier fond choisi s'il est éligible dans la zone/niveau de zoom de la nouvelle saisie. De cette manière un utilisateur à qui le fond par défaut ne convient pas n'a pas à switcher à chaque relevé.

Enfin pour rééclaircir le fonctionnement global des fonds de carte :
Pour chaque zone/niveau de zoom, l'application dispose d'un ensemble de fonds "éligibles", qui peuvent potentiellement fournir leur ressource.
Quand plusieurs fonds peuvent répondre à la zone et au niveau de zoom en question, un seul fond est chargé, avec le niveau de priorité suivant :

  • Dernier fond choisi par l'utilisateur
  • Fond embarqué par défaut
  • Cache local des fonds en ligne
  • En dernier recours, fond en ligne
  • Le fond en ligne et les data associés ne sont donc chargés que s'il n'y a rien d'autre, ou si l'utilisateur a choisi ce fond de carte lors des précédentes saisies. Un "effet de bord" qu'on peut identifier est le suivant : l'utilisateur est dans une zone sans carte embarquée, il switche pour passer sur un fond en ligne. Il saisit le lendemain dans une zone où son fond embarqué peut répondre, c'est son dernier fond choisi qui sera chargé en priorité (en ligne) alors que le fond embarqué pouvait répondre. A discuter si nécessaire.

@camillemonchicourt
Copy link
Member

OK pour moi. Ça me semble idéal comme ça.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants