Texte et images sur les modèles 3D

Un modèle 3D peut porter des surfaces : des zones planes comme la girouette (afficheur de destination) d'un bus, le panneau nominatif d'un abribus, un panneau publicitaire ou une plaque d'identification d'équipement. Icon Map dessine vos données sur ces surfaces, si bien que chaque modèle de la carte affiche ses propres valeurs : le bus de la ligne 25 affiche « 25 Ilford », l'abribus affiche le nom de son arrêt, le panneau publicitaire affiche l'affiche de ce site.

Les surfaces fonctionnent sur la couche Modèles 3D et sur le Suivi de véhicules lorsque ses marqueurs sont des modèles 3D. Une surface peut afficher du texte, une image ou des images en rotation, et le contenu peut provenir d'une colonne de vos données.

Où le trouver

Ouvrez les paramètres de la couche et choisissez un modèle. Si le modèle comporte des surfaces, une section Texte et images sur le modèle apparaît sous le sélecteur Modèle, avec une ligne par surface.

Si la section n'apparaît pas, le modèle n'a pas de surface. Voir Ajouter des surfaces à votre propre modèle.

Lorsqu'une couche utilise un modèle différent par catégorie, chaque ligne indique combien de modèles possèdent cette surface (par exemple 2 modèles sur 3). Pour les autres modèles, ces lignes n'ont tout simplement rien à dessiner.

Choisir ce qu'affiche une surface

Chaque surface a un paramètre de contenu :

Paramètre Ce qu'il affiche Exemple
Champ La valeur d'une colonne, pour chaque ligne stop_name
Modèle de texte Un texte construit à partir de plusieurs colonnes. Placez les noms de colonnes entre accolades. Une valeur manquante s'affiche vide. {route} {destination}
Texte fixe Le même texte sur chaque modèle Not in service
Image Une seule image : une adresse fixe, ou {column} pour la prendre dans vos données https://cdn.example.com/poster.png ou {advert}
Images en rotation Une liste d'images affichées tour à tour, quelques secondes chacune, ou une image choisie au hasard par modèle trois URL d'affiches
Désactivé Rien. Le paramètre est conservé, vous pouvez donc le réactiver.

Les images en rotation restent fixes pour toute personne dont l'appareil est configuré pour réduire les animations : chaque modèle continue d'afficher l'une de ses images au lieu d'en changer toutes les quelques secondes.

Certains modèles suggèrent une liaison pour une surface, par exemple une girouette qui attend {route} {destination}. Lorsque vous choisissez un tel modèle pour la première fois et que vos données comportent ces colonnes, la suggestion est appliquée pour vous ; sinon, la ligne la propose via Utiliser la suggestion. L'ouverture d'une couche existante ne modifie jamais vos paramètres.

Les surfaces destinées aux images, comme les panneaux publicitaires, ne proposent que Image, Images en rotation et Désactivé.

Texte, images ou SVG depuis une colonne

Avec Champ, indiquez ce que contient la colonne sous La colonne contient :

  • Texte (par défaut) : la valeur est dessinée sous forme de texte.
  • Une image (URL, chemin OneLake ou SVG) : chaque valeur est une image.
  • Texte ou image, par ligne : Icon Map décide pour chaque ligne. Une valeur est traitée comme une image lorsqu'il s'agit de balisage SVG, d'un URI data:image/... ou d'une adresse commençant par https://, http:// ou onelake://. Tout le reste est dessiné sous forme de texte. Un simple nom de fichier comme poster.png reste du texte, car il n'y a nulle part d'où le charger.

Une valeur d'image peut être l'une des suivantes :

Valeur Exemple Remarques
Une URL d'image https://cdn.example.com/ads/gym.png Le serveur doit autoriser les requêtes cross-origin (CORS). Le stockage Azure Blob avec CORS activé, ainsi que la plupart des CDN, le permettent. Sans cela, la surface reste vide. Le navigateur de chaque lecteur demande l'image directement à ce serveur, y compris pour les lecteurs d'une carte incorporée : n'utilisez donc que des serveurs de confiance. Icon Map n'envoie pas l'identité de la carte consultée.
Un fichier OneLake onelake://<workspace-id>/<item-id>/Files/ads/coffee.png Les adresses OneLake https://…onelake.dfs.fabric.microsoft.com/… fonctionnent aussi. Lu avec les propres autorisations du lecteur. Non affiché dans les cartes incorporées.
Un URI de données data:image/png;base64,iVBORw0… L'image voyage à l'intérieur de la ligne.
Du balisage SVG <svg viewBox="0 0 400 200">…</svg> Commence par <svg. Pratique pour des panneaux, badges et graphiques simples générés.

Remarques sur le SVG :

  • Donnez au SVG un viewBox. Sa taille en est déduite, ce qui permet de le dessiner nettement et avec les bonnes proportions.
  • Les scripts d'un SVG ne s'exécutent jamais : il est dessiné comme une image.
  • Les SVG contenant <foreignObject> (du HTML incorporé) ne sont pas dessinés. Les navigateurs interdisent de les utiliser comme textures sur un modèle 3D.

Style

Sélectionnez Style (le bouton pinceau) sur la ligne d'une surface.

  • Texte : couleur du texte, panneau derrière le texte et sa couleur, alignement et majuscules.
  • Images : Ajustement (Remplir la surface rogne pour remplir, Tout afficher ajoute des bandes, Étirer déforme pour ajuster) et Miroir gauche-droite.
  • Affichage lumineux / Rétroéclairé : activés par défaut, pour que la surface brille la nuit et ne soit pas assombrie par le soleil, comme une véritable girouette LED ou un caisson lumineux. Désactivez-les pour un panneau peint.

Une colonne réglée sur Texte ou image, par ligne affiche les deux jeux d'options.

Le style de texte par défaut est ambre sur un panneau sombre, l'aspect d'un afficheur de destination à LED.

Quand les surfaces apparaissent

Le texte et les images ne sont lisibles que de près : ils sont donc masqués en dessous d'un certain niveau de zoom. Réglez-le avec Afficher les surfaces à partir du zoom sous les lignes des surfaces. La valeur par défaut est 16, soit à peu près le niveau de la rue.

Les surfaces sont dessinées à la taille réelle de l'afficheur : la taille du modèle doit donc être exprimée en mètres. Une couche Modèles 3D dimensionnée en pixels n'affiche aucune surface.

Cartes incorporées

Lorsque vous incorporez une carte, les surfaces fonctionnent comme dans Fabric, à une exception près : les images OneLake issues de vos données (un chemin onelake:// dans une colonne, ou {column} dans un paramètre Image ou Images en rotation) sont vides dans la carte incorporée.

En effet, une carte incorporée ne peut lire que les fichiers copiés dans le dossier de publication au moment de la publication. Une image OneLake fixe, saisie dans les paramètres de la surface, est copiée et s'affiche. Un chemin situé dans vos données n'est connu que ligne par ligne : il n'est donc pas copié.

Pour des images pilotées par les données dans une carte incorporée, placez plutôt dans la colonne une URL https://, un URI data:image/... ou du balisage SVG.

Ajouter des surfaces à votre propre modèle

Aucun des modèles intégrés ne possède de surface. Pour en ajouter à votre propre modèle glTF/GLB, dans Blender ou tout autre outil 3D :

  1. Ajoutez un rectangle plat (un plan) à l'endroit où le contenu doit apparaître, posé sur la face du modèle. Icon Map décolle très légèrement le contenu de ce plan pour qu'il ne scintille jamais contre le modèle.
  2. Nommez l'objet surface:<name>, par exemple surface:blind ou surface:advert. La partie après les deux-points est le nom affiché dans Icon Map. (text:<name> fonctionne aussi.)
  3. Vérifiez que le plan est orienté vers l'extérieur. Le contenu est dessiné du côté vers lequel pointe la normale de sa face ; si une surface reste vide, inversez la normale.
  4. Exportez au format GLB sans compression Draco. Les maillages compressés sont ignorés lorsqu'Icon Map recherche les surfaces.

Le texte est dessiné droit par rapport à la direction verticale du modèle.

Facultatif, pour les auteurs de modèles : les extras glTF d'un nœud de surface peuvent contenir un objet iconmap:text qui donne à la surface un label convivial, une liaison suggérée (suggest, par exemple "{route} {destination}") et un style par défaut (color, background, align, uppercase, emissive et, pour les surfaces d'image, fit et mirror). Définir fit marque la surface comme surface d'image.

Avec Icon Map AI

Bientôt disponible

Icon Map AI figure dans la feuille de route de l'Icon Map Platform. Cette section décrit son futur fonctionnement ; elle n'est pas encore disponible de façon générale dans la préversion privée.

Au lieu de construire un modèle et de lier chaque surface à la main, vous pourrez décrire ce que vous voulez à votre assistant IA via Icon Map AI. Par exemple :

« Crée un abribus londonien avec un panneau nominatif au-dessus de l'ouverture et un panneau publicitaire sur la paroi du fond. Places-en un à chaque arrêt de ma table d'arrêts, affiche le nom de l'arrêt sur le panneau et fais tourner nos trois affiches de campagne sur les panneaux publicitaires. »

Générer un modèle avec des surfaces

Icon Map AI comprend model forge, qui crée des modèles 3D low-poly à partir d'une description. Lorsque l'objet réel porte du texte ou des images qui changent, model forge ajoute chaque afficheur au modèle sous forme de surface :

  • À sa taille et à sa position réelles, orientée vers le côté d'où on la lit : vous n'avez rien à mesurer ni à retourner vous-même.
  • Nommée d'après ce qu'elle est (blind, route_number, advert). Lorsqu'il y en a beaucoup, elles sont numérotées dans l'ordre de lecture : étiquettes de rayonnage label_b1_s1_p1, label_b1_s1_p2 et ainsi de suite, de gauche à droite et de haut en bas.
  • Avec une liaison suggérée et un style par défaut : une girouette LED ambre, un en-tête d'allée blanc sur bleu, un panneau publicitaire rétroéclairé.

L'assistant vous montre un aperçu du modèle et le modifie au fil de vos commentaires (« élargis la girouette », « mets la publicité à l'autre extrémité »).

Configurer la couche

Une fois le modèle satisfaisant, l'assistant :

  1. Enregistre le modèle dans le OneLake de votre espace de travail.
  2. Ajoute une couche Modèles 3D ou Suivi de véhicules qui l'utilise, ou met à jour une couche existante.
  3. Lie chaque surface à vos données : une colonne, un modèle de texte comme {route} {destination}, une image fixe ou une série d'images en rotation. Il définit aussi le zoom à partir duquel les surfaces apparaissent.
  4. Génère un aperçu de la carte, pour que vous puissiez vérifier que le texte se lit correctement avant l'enregistrement de la carte.

Le résultat est une couche Icon Map ordinaire. Ouvrez-la dans l'éditeur : la section Texte et images sur le modèle affiche chaque liaison, prête à être modifiée à la main.

Mettre en forme vos données

Une surface lit la ligne du modèle sur lequel elle se trouve : une ligne par bus, par abribus, par élément de rayonnage. Lorsqu'un même modèle porte de nombreuses étiquettes, comme un rayonnage avec 40 étiquettes de prix, chaque étiquette a besoin de sa propre colonne, nommée d'après sa surface. Si vos données comportent plutôt une ligne par étiquette, l'assistant peut écrire la requête qui les restructure. Comme les surfaces du modèle suggèrent exactement ces noms de colonnes, chaque étiquette se lie alors sans configuration supplémentaire.

Ce que l'assistant vous signalera

  • La taille est réelle. Une girouette de bus se lit dès le zoom au niveau de la rue ; une étiquette de rayonnage de quelques centimètres de haut ne se lit que dans des vues rapprochées, à hauteur d'œil. L'assistant n'agrandit pas un afficheur pour le rendre lisible de plus loin.
  • Les cartes incorporées nécessitent des images web ou SVG. Pour une carte que vous prévoyez d'incorporer, il place dans vos données des URL web ou du SVG plutôt que des chemins OneLake (voir Cartes incorporées).

Étapes suivantes

  • Modèles 3D : placer un modèle sur chaque point de vos données.
  • Suivi de véhicules : des flottes en direct, avec des girouettes qui se mettent à jour en même temps que les données.
  • Incorporer des cartes : placer une carte publiée sur votre propre page.