#1 Mon 06 December 2004 11:08
- Albin HERMANGE
- Invité
convertion fleches etiquette en ligne
Bonjour,
je suis a la recherche d'un outil qu va me permettre de convertir les fleches des etiquettes en vrais objets ligne
Cordialement
#2 Mon 06 December 2004 18:52
- Jacques Paris
- Invité
Re: convertion fleches etiquette en ligne
La fleche d’une etiquette est une ligne definie du centre de l’objet texte
au point d’ancrage mais qui n’est “visible” qu’a l’exterieur d’une “boite”
definie par le texte et le decalage standard par rapport au point d’ancrage.
Si une etiquette n’a pas ete deplacee, sa fleche n’est pas visible mais les
points de debut et de fin de la fleche sont toujours differents.
Il est facile de faire un test en convertissant des etiquettes en objets
textes (labeller.mbx) et en transformant une copie de cette nouvelle couche
par un update de la colonne object avec
Set obj= createline(objectgeography(obj,1), objectgeography(obj,4),
objectgeography(obj,3), objectgeography(obj,2))
Une remarque ici: les definitions donnees par MapBasic.def semblent inverser
OBJ_GEOLINEBEGY (2) et OBJ_GEOLINEENDY (4) mais cette inversion depend du
sens du deplacement du point
J’ai aussi trouve que ces lignes la ne correspondent pas aux fleches
originales quand j’ai utilise un decalage de 8 points vers le nord-ouest
Tout cela pour dire qu’il semble plus que difficile d’extraire de l’objet
texte une information valable concernant la taille et la position d’une
fleche/ligne de rappel. Je suis tres curieux de savoir comment on pourrait s
’y prendre pour le faire.
Jacques Paris
#3 Tue 07 December 2004 18:06
- Jacques Paris
- Invité
Re: convertion fleches etiquette en ligne
Je suis en train d'en perdre des bouts, je m'en excuse; mais personne n'a
remarque que la formule que j'avais donnee pour recreer des lignes a partir
des fleches de rappel d'etiquettes etait completement fausse. Elle donnait
en fait la diagonale du MBR de l'objet texte y compris sa fleche.
La formule qui marche est
update labarr set
obj=createline(centroidX(obj),centroidY(obj),objectgeography(obj,5),objectge
ography(obj,6))
Le seul probleme qui reste avec cette technique est que le trait existe
jusqu'au centroide du texte alors qu'il est normalement masque dans l'objet
texte par la boite meme texte. À la limite, on pourrait faire des couches
separees, mettre celle du texte par dessus celle des fleches et donner au
texte un fond opaque; on cacherait ainsi la partie de la ligne interferant
avec le texte (et aussi le contenu de la carte en-dessous du texte). Il faut
aussi noter que les etiquettes originales qui n'auraient pas eu de ligne de
rappel en ont une de longueur nulle (on peut les eliminer en selectionnant
les objets de longueur est zero)
Je vous rappelle que pour ce test, j'ai utilise labeler.mbx pour creer des
objets textes, fait une copie de cette nouvelle table et la mise a jour
specifiee ci-dessus sur cette copie.