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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 30 August 2012 17:11

Renaud
Membre
Lieu: Ploemeur (56)
Date d'inscription: 9 Mar 2006
Messages: 2315

[ArcGis 9.3] bloquer le rafraichissemet en VBA

Bonjour,

Je produit des cartes en grand nombre via un développement en VBA (pas encore la version 10 pour Python)

Mon soucis est que la carte se rafraichit un grand nombre de fois entre chaque écriture de png.
J'ai bien la fonction '.ActiveView.Refresh' pour obliger ArcGis à redessiner la carte, mais existe-t-il une propriété 'DoNotRefresh' pour bloquer le rafraichissement auto ?
Ça me ferai gagner des heures de temps machine.


Renaud Mouche

Hors ligne

 

#2 Fri 31 August 2012 00:06

Forestis
Participant assidu
Lieu: Aniane (Hérault)
Date d'inscription: 5 Sep 2005
Messages: 168
Site web

Re: [ArcGis 9.3] bloquer le rafraichissemet en VBA

tu as un rafraîchissement partiel (partial refresh un truc comme ça) en vba dans mon souvenir mais c'est bizarre que la carte se rafraîchit sans que tu lui demande surtout plusieurs fois.
sauf si tu bouge (pan ou zoom) auquel cas il faut bien qu'il affiche la zone demandée.
par contre il y a d'autre manière d'optimiser: poids des rasters ou formats (le jpeg c'est la misère pour arcgis, préféré le tif plus lourd mais non compressé donc gain de travail processeur, l'ecw, ou le sid), éviter les fichiers autocad ou micro-station, travailler en gdb et pas en mdb ni en shp, bien régler les seuils de zoom également pour ne pas afficher des rasters cachés par d'autres, etc.
Decris un peu mieux ton projet et je suis qu'on peut optimiser.
Il y a bien sur aussi le code vb mais la sans le voir c'est chaud de t'en dire plus.


[Matthieu Pette - Ad Terram] (@Ad_Terram sur le PiouPiou bleu)

~Géomaticien Indépendant~

Hors ligne

 

#3 Fri 31 August 2012 09:45

Renaud
Membre
Lieu: Ploemeur (56)
Date d'inscription: 9 Mar 2006
Messages: 2315

Re: [ArcGis 9.3] bloquer le rafraichissemet en VBA

Bonjour,


Pour faire simple, mon projet fonctionne un peu comme Map Series. Sauf que comme je travaille sur un mille-feuilles de nappes souterraines, je suis obligé de redéfinir les ensembles de définition de mes couches, pour n'afficher que les infos de la nappe en cours d'impression.

Effectivement, j'ai les géométries en shp et les données dans un mdb Access, une bonne source d'accélération à chercher là donc.
Je produit du png, qui doit être aussi lourd que le jpg à écrire. Mais comme les cartes sont insérées dans des fichiers Excel, je dois rester sur un format compact (je ne peux pas livrer des fiches à 30Mo). Je vais voir à exporter en tif d'ArcGis, puis à convertir par lot en png ensuite.
Je fais bien attention à n'afficher que les couches utiles, et elles sont toutes indexées spatialement.

La carte se rafraichi à chaque fois que je mets une couche à jour (changement de l'ensemble de définition essentiellement) et lorsque je zoome sur le nouveau territoire, j'ai donc 4 rafraichissements alors qu'un seul à la fin suffirait.


Renaud Mouche

Hors ligne

 

#4 Fri 31 August 2012 11:17

Forestis
Participant assidu
Lieu: Aniane (Hérault)
Date d'inscription: 5 Sep 2005
Messages: 168
Site web

Re: [ArcGis 9.3] bloquer le rafraichissemet en VBA

pour le format je parlais surtout de tes raster de fond en fait pour accélérer l'affichage, pas de tes exports dont effectivement le format ne changera pas grand chose.

Pour le reste je pense que tes changements d'ensemble de définition ne devrait pas te procurer de refresh automatiquement, seul le zoom devrait le faire.
regarde si dans ton code il n'y a pas un élément qui fait le refresh auto (sans le code je peux pas t'aider encore une fois)

sinon pour bloquer le refresh tu peux peut être désactiver l'affichage avec la méthode finishdrawing  du idisplay .

Il y a un bouton pour désactiver temporairement l'affichage, une piste a suivre aussi. Peut être la méthode invalidate  d'un iscreendisplay.

Dernière modification par Forestis (Fri 31 August 2012 11:27)


[Matthieu Pette - Ad Terram] (@Ad_Terram sur le PiouPiou bleu)

~Géomaticien Indépendant~

Hors ligne

 

#5 Fri 31 August 2012 14:41

Renaud
Membre
Lieu: Ploemeur (56)
Date d'inscription: 9 Mar 2006
Messages: 2315

Re: [ArcGis 9.3] bloquer le rafraichissemet en VBA

Bonjour,

Merci, le mode 'brouillon' de l'interface d'ArcGis a résolu le problème !
Je passe de 6-7 min à 1 min par carte, ça devient gérable smile

J'essayerai de voir (quand le PC aura fini d'imprimer) ce qui peut provoquer le refresh à part la mise à jour de l'ensemble de définition.
Je posterai le code si je ne trouve pas.


Renaud Mouche

Hors ligne

 

Pied de page des forums

Powered by FluxBB