Fonctionnement de la Cartographie - Juliette3529/Timber-Wall-E GitHub Wiki

Fonctionnement de la cartographie

La cartographie est un composant React, qui repose sur l'utilisation de la librairie D3.js.

Données d'entrée

Le format de ces données correspond à celui généré par le robot forestier à l'issue de la découverte de la parcelle.

À l'intérêt du développeur :

Le jeu de données à afficher (dit "dataset") est à fournir en propriété au composant de la façon suivante : <Cartography dataset={dataset}/>.

À l'intérêt de l'utilisateur :

Le format doit respecter ces règles :

  • Le point de départ du robot est indiqué par un D. Il ne doit y avoir qu'un seul D par fichier de cartographie. Le D peut, à priori, être placé n'importe où dans (ou sur) les limites de la parcelle (plus d'info sur les limites ci-dessous).
  • Un arbre est indiqué par un O (lettre "o majuscule", pas "zéro"). Un arbre ne peut pas se situer sur les limites de la parcelle.
  • Un obstacle infranchissable est indiqué par un X (lettre "x majuscule"). Un obstacle ne peut pas se situer sur les limites de la parcelle.
  • Les limites de la parcelle doivent être représentées par un rectangle au périmètre discontinu ou éventuellement croisé par un éventuel et unique D. Les symboles pour le représenter sont, au choix (voire en combinaison), le - ("tiret du 6") ou le | ("barre verticale", "tube" ou "pipe"). Par souci de visualisation, il est préférable de représenter les limites verticales avec un | et les limites horizontales (ainsi qu'en coin) avec un -.
  • Rien ne doit se situer en amont de la représentation de la limite supérieure de la parcelle.
  • Rien ne doit se situer à la suite de la représentation de la limite inférieure de la parcelle.
  • Toutes les lignes doivent contenir strictement le même nombre de caractères.
  • Il est éventuellement possible de terminer le fichier d'entrée par une ligne située juste après la représentation de la limite inférieure de la parcelle. Toutefois, celle-ci doit être strictement vide.

Des comportements inattendus, voire un refus de fonctionnement sont à prévoir si ces règles ne sont pas respectées.

Exemple de données d'entrée

Ci-dessous un exemple valide de représentation d'une parcelle :

D-------------------------------------------------
|   O     O    O     O    O     O   O     O   O  |
|                                                |
| O    O    O      O   O      O     XXX   O      |
|     XXXXXX                                     |
|   O       O      XXXX       O  X        O      |
|       O        O    XXXX          X O       O  |
|                                                |
|   O     O    O     O    O  X  O   O     O   O  |
|                                                |
| O    O    O      O   O      X     O     O      |
--------------------------------------------------