<\/P>
Also arbeiten Sie fleißig an Ihrer großartigen ArcGIS JavaScript-Anwendung. Sie haben einige nette benutzerdefinierte Werkzeuge implementiert, vielleicht sogar einige Suchfunktionen, das sieht echt cool aus<\/EM>. Sie klicken auf ein Feature auf der Karte und haben alle wichtigen Feldinformationen... außer dass Sie Zahlen sehen, wo eigentlich Werte angezeigt werden sollten?
Was zum Teufel soll das denn? Was bedeutet diese Zahl überhaupt?<\/EM> Also schauen Sie sich den Map-Service an und sehen, dass dieses Feld eine Domain<\/A> zugeordnet hat. Vielleicht sehen Sie sich eine andere Anwendung an, in der dieser Service bearbeitet wird, und bemerken, dass der Attribute Inspector<\/A> im Editor die korrekten Domain-Werte anzeigt, und jetzt kratzen Sie sich nur noch am Kopf und fragen sich, wie Sie diese Werte bekommen. Keine Sorge, sie sind da...irgendwo<\/EM>.<\/P><\/P>
var fieldMap = {};featureLayer.on('load', function() { \/\/- Iteriere über die Felder der Layer featureLayer.fields.filter(function(x) { return !!x.domain; \/\/- zwinge Wert zu boolean. Hier interessieren uns nur Domains }).map(function(x) { \/\/- mappe Felder mit Domains fieldMap[x.name] = {}; \/\/- Hash-Tabelle fieldMap[x.name].values = {}; \/\/- wird Domain-Werte halten fieldMap[x.name].alias = x.alias; \/\/- schöner Anzeigename x.domain.codedValues.map(function(a) { \/\/- mappe über codedValues fieldMap[x.name].values[a.code] = a.name; \/\/- speichere Domain }); });});<\/PRE><\/P>Der Schlüssel hier ist, über die Felder der Layer zu iterieren und den codierten Wert als Schlüssel für den Domain-Wert zu speichern. Dies erleichtert die Suche nach den Werten im nächsten Schritt erheblich.<\/P><\/P>Wir haben eine Methode definiert, die den Inhalt des Popups bestimmt, wenn es angeklickt wird. Wir können die Hash-Tabelle der Domain-Werte verwenden, um dies zu einer einfachen Aufgabe zu machen.<\/P><\/P>function getTextContent(graphic){ \/\/- erhalte Schlüssel der Attribute \/\/- *Hinweis - möglicherweise benötigen Sie einen Shim für Ihren Browser 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; }); \/\/- nur gültige Ergebnisse zurückgeben return elems.join('<br \/>');}<\/PRE><\/P>In diesem Beispiel verwenden wir
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registrieren Sie ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.