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 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

tongue

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

Florent
Participant actif
Lieu: Nantes
Date d'inscription: 5 Sep 2005
Messages: 86
Site web

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

 

Pied de page des forums

Powered by FluxBB