← Atlas

Atlas

Mettre une carte Atlas dans votre page

Trois étapes, sans serveur de cartes à monter. Ce guide dit l’essentiel ; le contrat complet (commandes, événements, limites mesurées) est dans la documentation du dépôt.

Étape 1 : charger le composant

Une ligne dans votre page. L’adresse publique suit toujours la dernière version ; pour une version figée, copiez le dossier d’Atlas chez vous et visez-le.

HTML
<script type="module" src="https://nic01asfr.github.io/Widgets-Grist/atlas/lib/bi/atlas-bi-element.js"></script>

Étape 2 : poser la carte

La balise <atlas-bi> reçoit l’adresse d’Atlas, et ce qui décrit votre carte : une charte (couleurs, caractères), des données, éventuellement un manifeste. Chaque morceau s’écrit en bloc dans la page, ou par l’adresse d’un fichier JSON que votre page lit.

Sans manifeste, le composant déduit les couches, les identifiants, la clé métier et les couleurs de vos données, et dit ce qu’il a décidé (événement atlas-bi-configure).

HTML
<atlas-bi src="https://nic01asfr.github.io/Widgets-Grist/atlas/index.html" fond="plan" style="display:block; height:480px">
  <script type="application/json" data-atlas="charte">
    { "version": "atlas-charte/0.1",
      "graines": { "principal": "#b4452c", "secondaire": "#3d6670", "fond": "#faf6ee", "encre": "#2b2118" },
      "texte": { "famille": "serif" } }
  </script>
  <script type="application/json" data-atlas="donnees">
    { "sites": [ { "type": "Feature", "id": 1, "properties": { "nom": "Mairie", "categorie": "Culture" },
                   "geometry": { "type": "Point", "coordinates": [-1.678, 48.113] } } ] }
  </script>
</atlas-bi>

Étape 3 : servir la page

Votre page doit être servie en http ou https, depuis n’importe quel site statique, GitHub Pages compris. Un fichier ouvert directement depuis le disque (file://) n’est pas accepté : Atlas ne répond qu’à une page dont l’origine est déclarée.

L’élément déclare lui-même l’origine de votre page à Atlas (attribut hote pour la changer). Une page qui ne s’est pas déclarée ne reçoit rien : une carte inconnue reste muette.

Les attributs de la balise

Attributs de <atlas-bi>
AttributCe qu’il fait
srcL’adresse d’Atlas (obligatoire).
donnees, manifeste, charteL’adresse d’un fichier JSON que votre page lit (http ou https, 16 Mo au plus), ou un bloc <script type="application/json" data-atlas="…"> : l’un ou l’autre, jamais les deux.
charte="herite"La carte prend les couleurs et la famille de caractères de votre page.
fondatlas, voile, uni, plan, plan-ign ou photo.
base="aucune"Aucun fond de carte ni service extérieur au démarrage (avec fond="uni"). Sans cet attribut, le fond vient d’OpenFreeMap.
cadrage="aucun"Garde la caméra par défaut au lieu de cadrer la carte sur vos données.
profil="complet"L’application entière (rail, panneaux, 3D) au lieu de la carte seule.
evenements-apiFait remonter aussi l’effet de vos propres commandes.
ratio-maxPlafonne la finesse de dessin sur un écran à fort ratio de pixels (de 1 à 4).

Piloter la carte

Chaque commande est une promesse : elle se résout par l’accusé de la carte, ou se rejette avec une erreur. batch envoie jusqu’à 100 ordres en un aller-retour. Les gestes de la personne reviennent comme des événements : atlas-bi-select, atlas-bi-hover, atlas-bi-filter, atlas-bi-camera, atlas-bi-time, atlas-bi-erreur.

C’est votre page qui détient l’état (filtres, sélection, temps) : la carte l’applique, le dessine et vous le dit.

JavaScript
const carte = document.querySelector('atlas-bi');
await carte.setScene(manifeste, donnees);              // les commandes attendent la connexion
carte.addEventListener('atlas-bi-select', (e) => ouvrirFiche(e.detail.charge.key));
await carte.setFilter('f-type', ['a', 'b']);           // l'hôte détient les filtres
Les commandes du socle
CommandeCe qu’elle fait
setScenePose les couches, la légende, les contrôles ; fusion: true ne remplace que les couches listées.
setFilter, setLayerVisibilityApplique l’état complet d’un contrôle ; montre ou masque une couche.
select, highlightSélectionne un objet par son identifiant ; entoure plusieurs objets.
flyTo, fitToDéplace la caméra ; cadre sur une couche ou des objets.
setTheme, setFond, getThemeApplique une charte, change le fond de carte, relit le thème mesuré.
getLegend, getRowsLit la légende ou les lignes affichées.
setTime, play, pausePilote la dimension de temps (une carte de chaleur qui avance, par exemple).

Ce qu’il faut savoir

Aller plus loin

Essayer l’atelier de style Voir une application alimentée en direct Le guide complet du développeur Le contrat de la carte (commandes et événements)