#1 Wed 05 July 2006 17:42
- nodulo
- Invité
Mises en pages automatiques Atlas
Bonjour
Je dois faire des mises en pages qui suivent un linéaire (cours d'eau, route) existe t-il un outil automatisé pour créer des fenêtres selon une polyligne?? afin de faciliter le cadrage de la mise en page et gagner du temps sur 200 mises pages....
Merci
#2 Mon 24 July 2006 15:46
- Virginie R
- Juste Inscrit !
- Lieu: Chalonnes sur Loire
- Date d'inscription: 24 Jul 2006
- Messages: 1
Re: Mises en pages automatiques Atlas
Bonjour
Je suis très interessée par ton message car je voudrais réaliser la meme chose!! malheureusement, je n'ai pas encore trouvé la réponse mais je ne désespère pas...
si jamais la solution a été trouvée entre temps, faites moi signe!
merci d'avance
Hors ligne
#3 Mon 24 July 2006 16:42
- nicolasd
- Membre
- Lieu: Nevers (58)
- Date d'inscription: 5 Sep 2005
- Messages: 1045
Re: Mises en pages automatiques Atlas
Vous pouvez toujours contacter
la société Strategis.
www.strategis.fr
Nicolas
------------------------------------------
Hors ligne
#4 Tue 25 July 2006 11:00
Re: Mises en pages automatiques Atlas
Bonjour,
Je ne connais pas d'outil automatisé mais si vous êtes prêts à mettre les mains dans le Mapbasic, voici un bout de code qui fait le plus gros du morceau.
Suivre une polyligne et cadrer la fenêtre tout les x mètres depuis le point de départ (ordre de digitalisation)
Le postulat est le suivant :
Loire_45.obj représente une couche contenant une polyligne
Il ne s'agit que d'un exemple, et il faut l'adapter pour que ça fonctionne sur plusieurs polylignes, voir des multipolylignes...
Code:
Sub Tech_Line ' Centre la carte tous les 5km le long du parcours 'Récupère les noeuds de la ligne Dim map_win_id as integer map_win_id = FrontWindow() Dim mapx as float, mapy as float Dim i as integer Dim x() as float, y() as float Dim Xi as float, Yi as float Dim coeff as float Dim more As Logical Redim x(objectInfo (Loire_45.obj, OBJ_INFO_NPNTS)) Redim y(objectInfo (Loire_45.obj, OBJ_INFO_NPNTS)) ' Premier cadrage et création de point x(1) = ObjectNodeX(Loire_45.obj, 1, 1) y(1) = ObjectNodeY(Loire_45.obj, 1, 1) Set Map Center (x(1), y(1)) Create Point (x(1), y(1)) Dim xa as float, ya as float, xb as float, yb as float For i = 1 to objectInfo (Loire_45.obj, OBJ_INFO_NPNTS) ' Point de départ xa = ObjectNodeX(Loire_45.obj, 1, i) ya = ObjectNodeY(Loire_45.obj, 1, i) ' Point d'arrivée xb = ObjectNodeX(Loire_45.obj, 1, i + 1) yb = ObjectNodeY(Loire_45.obj, 1, i + 1) ' Calcul du coefficient coeff = 5000 / Distance(xa,ya,xb,yb,"m") while coeff < 1 xi = xa + (xb - xa) * coeff yi = ya + (yb - ya) * coeff Set Map Center (Xi, Yi) Create Point (Xi, Yi) more = Ask("Voulez-vous continuer?", "OK", "Annuler") If more = false then exit sub End if xa = xi ya = yi coeff = 5000 / Distance(xa, ya, xb, yb,"m") wend Next
Bon courage pour la suite.
Pour plus d'infos vous pouvez directement me contacter.
Florent
Florent
Hors ligne