Pages: 1
- Sujet précédent - ArcGIS Runtime Java - Afficher le contenu d'un champ avec domaine - Sujet suivant
#1 Thu 02 August 2018 15:20
- janyv
- Participant assidu
- Lieu: Montreuil, France
- Date d'inscription: 8 Feb 2006
- Messages: 356
ArcGIS Runtime Java - Afficher le contenu d'un champ avec domaine
Bonjour ![]()
Je code actuellement en Java avec ArcGIS Runtime SDK version 100.3 pour développer une application cliente et je me heurte au problème suivant :
Quelqu'un sait-il comment afficher non pas la valeur "brute" d'un champ mais la valeur correspondante à son domaine ?
Dans l'extrait de code ci-dessous, je ne vois pas comment récupérer la valeur codée du domaine d'un champ.
Code:
ServiceFeatureTable pSFT = new ServiceFeatureTable(props.getProperty("URL_service_1"));
final ListenableFuture<FeatureQueryResult> selectFuture = pSFT.queryFeaturesAsync(queryParams, ServiceFeatureTable.QueryFeatureFields.LOAD_ALL);
selectFuture.addDoneListener(new Runnable() {
@Override
public void run() {
try {
Callout fenetre = mapView.getCallout();
fenetre.setStyle(props.getProperty("callOutCSS"));
fenetre.setTitle("Informations\n");
FeatureQueryResult result = selectFuture.get();
Iterator<Feature> iterator = result.iterator();
Feature feature;
String attrContenu;
attrContenu = "";
while (iterator.hasNext()) {
feature = iterator.next();
Map<String, Object> attr = feature.getAttributes();
Set<String> keys = attr.keySet();
for(int i = 0; i < champsDOPC.length; i++) {
for (String key : keys) {
Object value = attr.get(key);
if (champsDOPC[i].equalsIgnoreCase(key)) {
if (!(value == null)) {
Domain pDom = compaDOPCMoyen.getField(key).getDomain();
if (!(pDom == null)) {
System.out.println("Le champ " + key + " a comme domaine : " + pDom.getName());
}
attrContenu += key + " : " + value + "\n";
}
}
}
}
}
if (!fenetre.isVisible()) {
fenetre.setDetail(attrContenu);
fenetre.showCalloutAt(curMapPoint, dureeCallOut);
} else
fenetre.dismiss();
} catch (Exception ex) {
//System.out.printf(ex.printStackTrace());
}
}
});Merci par avance pour votre aide ![]()
Bon après-midi
Dernière modification par janyv (Thu 02 August 2018 15:25)
Si tu ne sais pas demande, si tu sais partage
Hors ligne
#2 Fri 03 August 2018 12:29
- janyv
- Participant assidu
- Lieu: Montreuil, France
- Date d'inscription: 8 Feb 2006
- Messages: 356
Re: ArcGIS Runtime Java - Afficher le contenu d'un champ avec domaine
Bonjour,
Au cas où, voici une solution : il faut changer de classe (Domain->CodedValueDomain) :
Code:
...
while (iterator.hasNext()) {
feature = iterator.next();
Map<String, Object> attr = feature.getAttributes();
Set<String> keys = attr.keySet();
for(int i = 0; i < champsDOPC.length; i++) {
for (String key : keys) {
if (champsDOPC[i].equalsIgnoreCase(key)) {
Object value = attr.get(key);
if (!(value == null)) {
Domain pDom = compaDOPCMoyen.getField(key).getDomain();
if (!(pDom == null)) {
CodedValueDomain pCVC = (CodedValueDomain)pDom;
List<CodedValue> pListe = pCVC.getCodedValues();
String sValue;
sValue = "";
for(int j= 0; j < pListe.size(); j++) {
if (value.toString().equalsIgnoreCase(pListe.get(j).getCode().toString())) {
sValue = pListe.get(j).getName();
break;
}
}
attrContenu += key + " : " + sValue + "\n";
} else {
attrContenu += key + " : " + value + "\n";
}
}
}
}
}
}
...Bonne journée
Si tu ne sais pas demande, si tu sais partage
Hors ligne
Pages: 1
- Sujet précédent - ArcGIS Runtime Java - Afficher le contenu d'un champ avec domaine - Sujet suivant


