Annonce
La 5ème édition des GeoDataDays aura lieu les 14 et 15 septembre 2022 au Futuroscope de Poitiers.
Le détail du programme et des intervenants est disponible sur le site de l'évènement.
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
- Membre
- Lieu: Montreuil, France
- Date d'inscription: 8 Feb 2006
- Messages: 347
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
- Membre
- Lieu: Montreuil, France
- Date d'inscription: 8 Feb 2006
- Messages: 347
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