J’avais d’abord posé cette question ailleurs, mais je n’ai obtenu aucune réponse. J’essaie donc ici. J’aurais besoin de conseils sur les modèles de fenêtres contextuelles. J’ai passé quelques heures là-dessus et je pense maintenant pouvoir poser une question pertinente, ce qui m’évitera, je l’espère, plusieurs heures supplémentaires d’essais et d’erreurs. Pour vous donner le contexte, mon association a créé une carte collaborative sur Google Maps qui comporte des dizaines de points avec des fenêtres contextuelles, dont beaucoup contiennent une ou plusieurs photos, une légende pour les photos et des coordonnées de latitude/longitude. Je me suis maintenant chargé de convertir les fichiers KML en fichiers de formes, de les nettoyer et de les importer dans la carte gratuite ArcGIS Online. Je connais assez bien ArcMap et j’ai pratiquement tout compris, sauf les fenêtres contextuelles. Je peux coller le modèle KMLPopup.xsl dans le champ des propriétés du fichier de formes, et cela fonctionne, mais les légendes sont tronquées, car le champ « PopupInfo » créé dans la table attributaire lors de la conversion du fichier KML est limité à 156 caractères, et toutes les informations — l’URL de la photo, les coordonnées de latitude/longitude et la légende — sont regroupées dans un seul champ.
Je connais un peu le HTML et je reconnais certaines balises du modèle, mais le XML, c’est du chinois pour moi :
<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-<xsl:template match="/">
-<html>
<head> </head>
-<body>
-<table>
-<tr>
-<td style="white-space: nowrap;">
-<xsl:choose>
-<xsl:when test="FieldsDoc/Fields/Field/FieldName">
<xsl:apply-templates select="FieldsDoc/Fields/Field/FieldName[contains(., 'PopupInfo')]/.."/>
</xsl:when>
-<xsl:otherwise>
<xsl:apply-templates select="FieldsDoc/Fields/Field"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
-<xsl:template match="Field">
<xsl:value-of select="FieldValue" disable-output-escaping="yes"/>
</xsl:template>
</xsl:stylesheet>
Voici donc ma question. Si j’ajoutais un ou plusieurs champs à la table attributaire et répartissais les informations entre eux pour qu’elles tiennent toutes, comment modifier le code afin d’inclure ces champs supplémentaires dans la fenêtre contextuelle ?