<\/P>
Donc, vous travaillez dur sur votre incroyable application ArcGIS JavaScript. Vous avez quelques outils personnalisés sympas en place, vous avez peut-être même des capacités de recherche en cours, cette chose a l'air cool<\/EM>. Vous cliquez sur une entité sur la carte et vous avez toutes les informations importantes du champ... sauf que vous avez des nombres là où des valeurs devraient peut-être apparaître ?<\/P><\/P>Eh bien, c'est quoi ce bazar ? Que signifie ce nombre ?<\/EM> Alors vous allez regarder le service de carte et vous voyez que ce champ a un domain<\/A> qui lui est associé. Peut-être que vous regardez une autre application où ce service est édité et vous remarquez que l'attribute inspector<\/A> dans l'éditeur a les bonnes valeurs de domain et maintenant vous vous grattez la tête en vous demandant comment obtenir ces valeurs. Ne vous inquiétez pas, elles sont là...quelque part<\/EM>.<\/P><\/P>
var fieldMap = {};featureLayer.on('load', function() { \/\/- itérer sur les champs du Layer featureLayer.fields.filter(function(x) { return !!x.domain; \/\/- forcer la valeur en booléen. on ne s'intéresse qu'aux domains ici }).map(function(x) { \/\/- mapper les champs avec domains fieldMap[x.name] = {}; \/\/- table de hachage fieldMap[x.name].values = {}; \/\/- contiendra les valeurs de domain fieldMap[x.name].alias = x.alias; \/\/- joli nom d'affichage x.domain.codedValues.map(function(a) { \/\/- parcourir les codedValues fieldMap[x.name].values[a.code] = a.name; \/\/- enregistrer le domain }); });});<\/PRE><\/P>La clé ici est d'itérer sur les champs du layer et de stocker la valeur codée comme clé vers la valeur de domain. Cela facilitera la recherche des valeurs à l'étape suivante.<\/P><\/P>Nous avons une méthode qui définit le contenu du popup lorsqu'il est cliqué. Nous pouvons utiliser la table de hachage des valeurs de domain pour rendre cette tâche simple.<\/P><\/P>function getTextContent(graphic){ \/\/- obtenir les clés des attributs \/\/- *Note - vous pourriez avoir besoin d'un shim pour votre navigateur var elems = Object.keys(graphic.attributes).map(function(x) { var attr = graphic.attributes;<\/<X> var field = fieldMap;<\/<X> if (field) { return "<b>" + field.alias + "<\/_b>: " + field.values[attr]; } else { return false; } }).filter(function(x) { return x; }); \/\/- ne retourner que les résultats valides return elems.join('<br \/>');}<\/PRE><\/P>Donc dans cet exemple, nous utilisons
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.