#1 Tue 03 May 2005 17:43
- Hozhoni 451
- Invité
creationCoordonnees XY deb et fin de polyligne
De: francois
Bonjour,
Un pti souci concernant la creation de coordonnees X et Y deb et fin d'une polyligne sous mapinfo 7.0
1 - On m'ave conseille:
Dans la fenetre Mapbasic, il faut rentrer: Set Coordsys table ma_table
Puis mettre a jour les champs x_debut, y_debut, x_fin, y_fin avec respectivement les fonctions suivantes:
ObjectGeography(obj,1)
ObjectGeography(obj,2)
ObjectGeography(obj,3)
ObjectGeography(obj,4)
Or, il calcule les X et Y mini et maxi.
2 - Avec une fonction mapbasic:
update Selection Set X_deb = ObjectGeography(obj,OBJ_GEO_LINEBEGX), il calcule bien les coordonnees de deb et fin(en l'occurence ici le deb X) mais pas les bonnes parfois.....
3 - Je change de methode .... ca ***** encore!
ObjectNodeX(Obj,1,1) me donne le X1..........OK
ObjectNodeY(Obj,1,1) plante (des fois g le Y2 a la place du Y1 ou qq fois nimporte quoi)
ObjectNodeX(Obj,1,ObjectInfo(Obj,20)) me donne le X2......OK
ObjectNodeY(Obj,1,ObjectInfo(Obj,20)) (idem autre Y)..
Voila, se pu trop quoi faire /....
si qqun a une solution..
Merci d'avance ...salut
#2 Wed 04 May 2005 12:08
- Magali Di-salvo
- Invité
Re: creationCoordonnees XY deb et fin de polyligne
Bonjour,
desolee, je n'apporte pas de solution mais un probleme similaire pour lequel
je m'arrache les cheveux !
Soit un troncon (de bdcarto, en l'occurence). Je souhaite recuperer ses
sommets initiaux et finaux dans des colonnes (soit (X1,Y1) et (X2,Y2)) a
partir de la commande mapbasic objectgeography .
Je recupere bien x1, y1 et x2,Y2, mais a l'ecran si je survole avec
position curseur je vois que mes Y1 et Y2 sont inverses...mais pas tout le
temps...de maniere aleatoire (ou pas ?) un coup les x,y sont ok et une autre
fois il m'inverse les y (et les y uniquement). Je precise que quand je
double-clique sur le troncon pour voir les coordonnees des sommets c'est
faux aussi (comme avec objectgeography)
moi aussi je suis coincee et preneuse d'une solution ! est-ce un bug de
mapinfo ? dans les donnees ? je precise que quand je fais un mif/mid et que
j'edite le mif c'est correct...
merci d'avance !
Magali Di Salvo-Delehaye
Chargee d'etude en Geomatique Urbaine
CERTU / URB / Observation Urbaine
#3 Wed 04 May 2005 12:08
- Magali Di-salvo
- Invité
Re: creationCoordonnees XY deb et fin de polyligne
finalement la solution est (merci a Maurice Nadal !) :
- n'utiliser objectgeography avec l'option OBJ_LINE_BEGX etc... que sur les
objets lignes !
- pour les polylignes utiliser objectnodex et objectnodey
donc il faut tester le type d'objet avant (ligne/polyligne) et employer la
fonction adequate...
merci !
magali
#4 Wed 04 May 2005 16:36
- Hozhoni 451
- Invité
Re: creationCoordonnees XY deb et fin de polyligne
De: francois
Je n'ai que des polylignes et avec ObjectNode, le probleme subsiste....
#5 Wed 04 May 2005 16:36
- Jplartigau
- Invité
Re: creationCoordonnees XY deb et fin de polyligne
De: jplartigau
Bonjour a tous,
Premier point
lorsque l'on double clique sur un objet ce ne sont pas les coordonnees des extremites qui apparaissent mais celles du MBR alias le rectangle d'encombrement minimum soit en plus simple
X1 =xmini
Y1 = ymini
X2 = xmaxi
Y2= ymaxi
bien sur sauf a avoir une ligne dont le point de depart est le point le plus en bas a gauche et un point d'arrive le plus en haut a droite on aura jamais les X1,Y1,X2,Y2 correspondant aux coordonnees des extremites.
Or la fonction Objectgeography(obj,1 ou 2 ou 3 ou 4) donnera que les coordonnees du MBR.
Voici pour le premier point
Quant au second a savoir recuperer les coordonnees des extremites du dessin de la polyligne j'ai beaucoup d'outils ecrit en mapbasic qui fonctionnent tres bien a ceci pres. Les coordonnees ont des ecarts minimes (mais non nuls) avec les coordonnees dessinees ou recuperables sous le format MIFMID. Dans une de mes precedentes intervention a ce sujet j'indiquais que la seule solution aujourd'hui trouvee pour resoudre ce probleme d'ecarts residuels etait le passage par la generation d'un mifmid temporaire pour chaque objet. J'utilise cette methode pour generer des DXF maison conforment geometriquement parlant avec les objets dessines.
Pour ceux qui seraient interesses par la version utilisant la commande ObjectNodeX et Y
voici ce que j'utilise
x1 = ObjectNodeX(objet_v, cpt1, cpt2)
y1 = ObjectNodeY(objet_v, cpt1, cpt2)
ou cpt1 represente le numero du segment et cpt2 le numero de sommet dans ce segment
Bien evidemment c'est a travers des boucles que je depile mais objets. Je n'ai jamais eu aucun soucis hormis la precision (de l'ordre de 2 a 5 cm sur les sommets).
Attention si une polyligne est composee de plusieurs segments continus il peut etre difficle de savoir celui qui est au depart et celui qui est a l'arrive, je n'ai jamais essaye de le savoir ni de recuperer les coordonnees des extremites. C'est la que peut eventuellement venir du probleme evoque par Francois (mais cela m'etonne).
Reprenant la geometrie des objets dans leur integralitee pour generer du DXF je n'ai jamais eu de probleme avec les commandes evoquees par Francois. S'il veut m'envoyer un bout de code j'essaierai de le verifier.
Bon developpement a tous
#6 Mon 09 May 2005 14:58
- Francois Biju-Duval
- Invité
Re: creationCoordonnees XY deb et fin de polyligne
Attention aussi au sens de numerisation des lignes avec ObjectGeography !