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é ?

#1 Tue 05 June 2007 10:30

scoutoto
Participant occasionnel
Date d'inscription: 5 Jun 2007
Messages: 32

Ajout de plusieurs tables dans une seule table avec MapX.

Bonjour,

Je voudrais faire la même manip' (réunir plusieurs couches en une seule) mais j'utilise l'active X MapX.
Pour palier à mon souci, je peux utiliser la fonction "addfeature" et ainsi ajouter tous les features un par un de toutes mes couches.
Cependant, si mes couches ont bcp de features cette opération est bcp trop longue.
Merci de votre aide.

[Note de la modération : Message déplacé]

Hors ligne

 

#2 Tue 05 June 2007 15:16

scoutoto
Participant occasionnel
Date d'inscription: 5 Jun 2007
Messages: 32

Re: Ajout de plusieurs tables dans une seule table avec MapX.

Bonjour,

Tout d'abord pardon, j'ai fait une mauvaise manip' en envoyant mon 1er message au mauvais endroit.
Donc je me permets de renvoyer mon message.

J'utilise l'activeX MapX et je souhaiterai ajouter plusieurs tables dans une nouvelle table (équivalent à table>>ajout table dans MapInfo)
Pour palier à mon souci, je peux utiliser la fonction "addfeature" et ainsi ajouter tous les features un par un de toutes mes couches.
Cependant, si mes couches ont bcp de features cette opération est bcp trop longue.

Merci de votre aide.

Hors ligne

 

#3 Wed 06 June 2007 10:31

michel wurtz
Participant actif
Lieu: Neuve-Eglise
Date d'inscription: 17 Oct 2005
Messages: 119

Re: Ajout de plusieurs tables dans une seule table avec MapX.

Bonjour,

Il faut utiliser les methodes "BeginAccess" et "EndAccess" pour encadrer
la boucle d'insertion des objets.  Ceci permet d'éviter un verrouillage
automatique lors de chaque inserion d'objet avec MapX et permet d'aller
*beaucoup* (5 à 10 fois) plus vite.

--
Michel Wurtz
MAP/SG/SM/SDSI/CERIT/DIG
B.P. 12668 - 31326 Castanet-Tolosan Cedex

Hors ligne

 

#4 Wed 06 June 2007 11:31

scoutoto
Participant occasionnel
Date d'inscription: 5 Jun 2007
Messages: 32

Re: Ajout de plusieurs tables dans une seule table avec MapX.

Merci pour la réponse.

J'ai testé mon code en entourant ma boucle d'insertion avec ces deux fonctions.

Avec "BeginAccess" et "EndAccess" => Ajout de 100 features (avec addfeature) =>14 secondes
Sans "BeginAccess" et "EndAccess" => Ajout de 100 features (avec addfeature) =>14 secondes (aussi).

Ces deux fonctions n'ont aucun impact pour mon cas.

Suis je obligée d'utiliser "addfeature" pour ajouter plusieurs tables dans une nouvelle table avec MapX.

N'existe t'il pas une solution qui consiste à ajouter un layer (comme la fonction "ajout table" dans MapInfo) sans avoir à lister tous les features de chaque layer  ?

Merci de votre aide.

Hors ligne

 

#5 Thu 07 June 2007 16:52

michel wurtz
Participant actif
Lieu: Neuve-Eglise
Date d'inscription: 17 Oct 2005
Messages: 119

Re: Ajout de plusieurs tables dans une seule table avec MapX.

Bonjour,

Quel paramètre est utilisé pour BeginAccess ?

Un exemple de code où la différence est sensible :

Code:

     Set OpenQuery = MapXMap.layers.Add(opInfo, iCouche)
     OpenQuery.Style = lTemp.Style.Clone
     Set dsTemp = MapXMap.DataSets.Item(NomCouche)
     Set oRv = dsTemp.RowValues(0).Clone
     'copie des objets
     OpenQuery.BeginAccess miAccessReadWrite
     For Each oLyr In lSel
         For Each f In ds.Fields
             oRv(f).Value = ds.RowValues(oLyr.FeatureKey).Item(f).Value
         Next
         OpenQuery.AddFeature oLyr, oRv
     Next
     OpenQuery.EndAccess miAccessEnd

--
Michel Wurtz
MAP/SG/SM/SDSI/CERIT/DIG
B.P. 12668 - 31326 Castanet-Tolosan Cedex

Hors ligne

 

#6 Fri 08 June 2007 11:12

scoutoto
Participant occasionnel
Date d'inscription: 5 Jun 2007
Messages: 32

Re: Ajout de plusieurs tables dans une seule table avec MapX.

Merci de votre réponse.

En fait, j'ai utilisé une autre méthode pour résoudre mon problème.

J'ai concaténé mes fichiers shp en un fichier final shp grâce au logiciel "Ogr2Ogr".
Ensuite, j'ai converti mon fichier final shp en tab avec l'active X MapX.
Avec mes 1er tests, cela fonctionne ...

En fait, en comparant votre solution avec mon code je pense que l'erreur que je faisais est de ne pas utiliser la fonction "Clone".

Merci une nouvelle fois de votre aide.

Hors ligne

 

Pied de page des forums

Powered by FluxBB