PDA

Voir la version complète : [MapInfo 6.x] Problème de projection / translation Y de 2000 km



charles
19/10/2004, 09h25
Bonjour à tous,

J'ai traduit sous MI 6.0 des DWG Autocad. Lorsque je les ouvre sur MI j'ai un décalage de 2000 km sur les Y.

Je spécifie pourtant bien que je veux travailler en Lambert II carto (lors de la traduction et en faisant "enregistrer sous") et rien n'y fait.

Savez-vous comment opérer cette translation ou forcer la projection.

Merci de votre aide.

alagache
19/10/2004, 09h45
Bonjour,

Es-tu sur que tes données d'AutoCAD sont bien en LambertIIc ? Essaie avec une autre projection lors de ta conversion (LambertIc ou Lambert IIIc voir Lambert93 mais la différence serait plus importante)...
Quand les 2 cartes sont affichées, dans Carte > Option > Projection, change de projection pour LambertIc fait Ok puis recommence pour te remettre en LambertIIc, je me souviens avoir eu des problèmes de rafraichissement.

Alex

Brice
19/10/2004, 10h23
Concernant ton problème, j'ai trouvé cette réponse dans le portail géomatique :


La reponse precise depend un peu de l’origine de la table.

Si vous voulez importer un fichier DXF et que le recalage n’implique pas de
rotation, vous pouvez a l’importation donner les coordonnees de 2 points
dans les deux systemes, DXF et MI. C’est dans la commande « IMPORT … Type
DXF.. » qu’existe le mot cle « transform » que vous n’utiliserez pas si vous
passez par le menu seulement.

En grand general, la procedure est en effet de passer par les MID/MIF et de
modifier le CoordSys en y rajoutant la « phrase » AFFINE (entre la
definition de la projection et les « Bounds… » s’il y en a. Sa syntaxe
globale est

AFFINE UNITS nom-de-l’unite-des-coordonnees , A , B , C , D , E , F

nom-de-l’unite-des-coordonnees = m le plus souvent.

Les parametres A..F sont ceux d’un systeme de 2 equations necessaires a
calculer les coordonnees d’un point dans la carte d’origine (le DXF, X,Y) a
partir de celles de la carte MI (XT,YT). Cela peut paraitre etrange mais c’
est bien de cela dont MI se sert
X= A * XT + B * YT + C
Y= D * XT + E * YT + F

Pour une simple translation
A,B,D,E=0 C=X – XT F=Y –YT

S’il y a rotation, l’angle de rotation (rot) est mesure comme l’angle entre
le nord sur la carte MI (toujours vertical) et celui sur la carte DXF avec
un + si le nord de DXF est « a gauche » de la verticale, un – si « a
droite »

Alors A= COS(rot) B= -SIN(rot) D= SIN(rot) E=COS(rot) et

C= X – COS(rot) * XT + SIN(rot) * YT
F= Y – SIN(rot) * XT – COS(rot) * YT

Donc si vous connaissez les coordonnees exactes d’un point et le nord dans
les 2 cartes vous pouvez y aller. Autrement il faut que vous preniez
plusieurs points avec leurs coordonnees et fassiez des calculs pour estimer
tous ces parametres. Il existe des gabarits XLS pour le faire, j’en ai
moi-meme fait un dans le temps.

Une fois en possession des parametres AFFINE, voici la procedure :

1- importer le fichier DXF dans MI. Accepter tous les parametres standards
2- exporter en MIF/MID
3- remplacer le CoordSys par le bon (celui de DXF est probablement en
non-earth) avec les parametres de transformation
4- reimporter le MIF/MID
5- sauvegarder une copie en specifiant le CoordSys qui est le bon (voir 3- )
mais sans AFFINE

NOTE certains types d’objet MI ne supportent pas de rotation. C’est le cas
en particulier des rectangles, des ellipses, des arcs d’ellipse. Il faut
donc, une fois la premiere importation de dxf faite et avant l’exportation
en MIF/MID, s’assurer qu’il n’y en a pas et dans le cas ou il y en aurait de
les transformer en regions ou en polylignes..

Ceci n’est pas un « outil » mais une « recette ». Bonne chance

Jacques

Jacques PARIS

En espérant que cela t'aide.

EDIT:Tu peux peut-être aussi utiliser l'outil registervector.mbx se situant dans le répertoire tools de MapInfo. Jamais utilisé mais il permet de recaler une couche vecteur suivant des points de référence.

Trex
19/10/2004, 15h52
Bonjour
Attention le traducteur universel ne reprojete pas une table. Il applique une projection à des coordonnées. Si votre fichier est en lambert local vous devez appliquer une projection locale. Ici visiblement, vous avec appliqué la projection Lambert II carto (etendu) à une table en coordonnées locales.
Réutilisez le traducteur.
Il existe une solution pour faire une translation d'une table. Exporter la table en MIF/MID, éditer le MIF et ajouter une commande TRANSFORM apres la description du coordsys
TRANSFORM mX,mY,dX,dY
dX pour le déplacement en X
dY pour le déplacement en Y
mX pour un multiplicateur des X
mY pour un multiplicateur des Y
importer le MIF/MID
Laurent

charles
20/10/2004, 10h35
Ca marche! :cheesy: :D

J'ai donc rédigé:

Transform 1,1,0,+2000000

:merci:

Bonne journée.