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