Pages: 1
- Sujet précédent - Ajout de plusieurs tables dans une seule table avec MapX. - Sujet suivant
#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
Pages: 1
- Sujet précédent - Ajout de plusieurs tables dans une seule table avec MapX. - Sujet suivant