Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 05 January 2015 12:26

sanspseudofixe
Juste Inscrit !
Date d'inscription: 5 Jan 2015
Messages: 4

Map info 10.5 Parcourir valeurs d'une variable tableau (array)

Bonjour à tous et bonne année,
Après de multiples recherches sur différents forums, je n'ai pas trouvé de solutions concernant mon problème.
J'utilise, dans map basic, la commande suivante qui permet de créer des classes afin ensuite de réaliser des analyses thématiques (automatiques).

Code:

Create Ranges
From table
With expr
[ Use { "Equal Ranges" | "Equal Count" | "Natural Break" | "StdDev" } ]
[ Quantile Using q_expr ]
[ Number num_ranges ]
[ Round rounding_factor ]
Into Variable array_variable

Cependant, j'aimerais pouvoir récupérer les données de la variable tableau "array_variable".
Est-ce que cela est possible ?

Je me heurte à l’impossibilité de parcourir cette variable tableau ( avec mes 'petites" connaissances en la matière)

Lorsque j'essaie de manipuler le tableau ( exemple print, ou boucle), MI me renvoit " impossible d'utiliser un tableau ou un type défini par l'utilisateur dans une expression map basic"

Et si oui, quelles sont les possibilités ?

En vous remerciant d'avance,

Dernière modification par sanspseudofixe (Mon 05 January 2015 14:38)

Hors ligne

 

#2 Mon 05 January 2015 15:08

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)

Salut et bienvenue,

Bonne année par la même occasion wink
As tu essayé de regarder la fonction --> Instruction Shade
Crée une couche d'analyse thématique et l'ajoute à une fenêtre Carte existante. Vous pouvez exécuter
cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.

Syntaxe
Shade [ Window window_id ]
{ layer_id | layer_name }
With Metadata
With expr
[ Ignore value_to_ignore ]
Ranges
[ Apply { Color | Size | All } ]
[ Use { Color | Size | All } [ Line... ] [ Brush... ]
[ Symbol... ]
]
{ [ From Variable float_array Style Variable style_array ] |
minimum : maximum [ Pen... ] [ Line...] [ Brush... ]
[ Symbol... ] [ , minimum : maximum [ Pen... ]
[ Line...] [ Brush... ] [ Symbol... ] ... ]
}
[ Style Replace { On | Off } ]
[ Default [ Pen... ] [ Line... ] [ Brush... ] [ Symbol... ] ]


C'est là que la variable Array est utilisée: --> [ From Variable float_array Style Variable style_array ]
En espérant que celà t'aide.
Voir aussi à partir de la page 236 du MapBasicReference guide et aussi la page 736.
A+
Joël

Hors ligne

 

#3 Mon 05 January 2015 15:26

sanspseudofixe
Juste Inscrit !
Date d'inscription: 5 Jan 2015
Messages: 4

Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)

Merci pour ton accueil et tes précieux conseils sur ce forum qui m'ont beaucoup aidé.

Effectivement, j'utilise l'instruction shade afin de créer mon analyse thématique.

Cependant, ces valeurs de minimum et de maximum pour le nombre de classe choisi (dans l'instruction create range ... number X),

Sont-elles récupérables dans une table ou d'une autre manière ( autre que l'inscription dans le .wor) ?

Le but étant de récupérer ces valeurs pour X classes à partir de cette variable tableau, sous forme de table ou variable.

Encore merci pour ta réponse rapide.

Hors ligne

 

#4 Mon 05 January 2015 15:43

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)

Perso je n'ai jamais utilisé ces fonctions mais tu dis :

autre que l'inscription dans le .wor


Tu arrives à récupérer ces valeurs dans un .wor?

Hors ligne

 

#5 Mon 05 January 2015 16:04

sanspseudofixe
Juste Inscrit !
Date d'inscription: 5 Jan 2015
Messages: 4

Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)

Je vais essayer d'être plus clair :

J'ai un .wor avec différentes couches  sans analyse thématique ni légende. C'est ma base. 

Ensuite j'ai un .mbx qui me permet de créer une analyse thématique en layer 4 sur ce .wor ( voici la version simplifiée)

Code:

'déclaration des variables
Dim array_variable() as Float
Dim brush_styles() As Brush  
Dim col_name As Alias 

'création du styles 
Create Styles      
From Brush (2,15922394,16777215)  'style for LOW range 
To Brush (2,10068050,16777215) 'style for HIGH rangef
Vary Color By "RGB"
Number 5
Into Variable brush_styles 

' Store a column name in the Alias variable:  
col_name = "Taux"   

'création des classes 
Create Ranges From cp_proche    
With col_name      
Use "Natural Break"     
Number 5      
round 0.1 
Into Variable  array_variable

 
' mise en place de l'analyse thématique 
Shade cp_proche      
With col_name      
Ranges          
From Variable array_variable    
Style Variable brush_styles   

'mise en place de la légende 
set legend 
  layer 4 
    display on 
    shades on 
    symbols off 
    lines off 
    count off 
    title "Taux " Font ("Humanst531 BT",1,9,0)
    subtitle "en %" Font ("Humanst531 BT",0,8,0)
    ascending off 
    ranges Font ("Humanst531 BT",0,8,0)
      auto display off ,
      auto display on ,
      auto display on ,
      auto display on ,
      auto display on ,
      auto display on

Une fois lancé ce .mbx, au sein du .wor sauvegardé j'ai l'analyse thématique suivante (correspondant au "Natural break") :

Code:

shade 4 with Taux ranges apply all use all Brush (2,16777215,16777215) 
  0: 0.1 Brush (2,15922394,16777215) ,
  0.1: 0.3 Brush (2,14741680,16777215) ,
  0.3: 1.7 Brush (2,14737536,16777215) ,
  1.7: 6.4 Brush (2,11583568,16777215) ,
  6.4: 19.4 Brush (2,10068050,16777215) 
  default 
  # use 1 round 1 inflect off Brush (0,0,0) at 0 by 0 color 1 #

Mon but est de savoir si on peut parcourir et donc récupérer dans une table ( et non pas en allant fouiller dans le .wor) les valeurs de la variable tableau " array_variable" à savoir :

Code:

  0: 0.1 
  0.1: 0.3 
  0.3: 1.7 
  1.7: 6.4 
  6.4: 19.4

En espérant être plus clair.

Dernière modification par sanspseudofixe (Mon 05 January 2015 16:06)

Hors ligne

 

#6 Mon 05 January 2015 16:50

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)

As tu essayer de récupérer tes valeurs comme ceci:

Code:

Dim array_variable() As Float
Dim nItem, MaxItem As Integer
MaxItem = UBound(array_variable)

for nItem=1 to MaxItem

Print array_variable(nItem)
next

Dernière modification par Spacejo (Mon 05 January 2015 17:01)

Hors ligne

 

#7 Tue 06 January 2015 10:00

sanspseudofixe
Juste Inscrit !
Date d'inscription: 5 Jan 2015
Messages: 4

Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)

Merci pour ce code.

Effectivement cela fonctionne parfaitement.

J'ai pu effectivement récupérer les valeurs de cette variable.

A bientôt.

Hors ligne

 

Pied de page des forums

Powered by FluxBB