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

Printemps des cartes 2024

#1 Tue 16 April 2013 17:26

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

[mapserver 6] Manque de régularité pour les lignes tiretées

Bonjour,

Je veux utiliser des lignes tiretés de différents styles pour illustrer les limites administratives.
Dans mon fichier de lignes, il n'y a pas de chevauchement. Donc, pas de source de conflit dans la séquence des tirets.
J'ai vérifié et revérifié et tout est OK de ce côté.

Quand c'est affiché, les traits sont irréguliers.
Les extrémités des traits sont toujours à 45° Si les lignes sont à 45°, les traits sont parfaits.
Si elles sont à 0° ou à 90°, les extrémités des traits sont pointues.
Quand l'orientation des lignes est autre ou pour des sinueuse, c'est n'importe quoi et c'est surtout très irrégulier.
Ça ne change rien si je change le type d'extrémité. Plat, carré, rond ou triangle (butt, square, round ou triangle).

Voici le code.

Pouvez-vous me dire qu'est ce qui ne va pas?

Code de symbol.sym

Code:

    
    
    SYMBOL 
      NAME "Limite_Arron"
      TYPE ELLIPSE
      FILLED TRUE
      POINTS 1 1 END
      PATTERN 3 5 END
      LINECAP butt
      LINEJOIN bevel
    END
    
    # --------------------
    
    SYMBOL 
      NAME "Limite_Muni"
      TYPE ELLIPSE
      FILLED TRUE
      POINTS 1 1 END
      PATTERN 20 6 2 6 END
      LINECAP butt
      LINEJOIN bevel
    END
    
    # --------------------
    
    SYMBOL 
      NAME "Limite_MRC"
      TYPE ELLIPSE
      FILLED TRUE
      POINTS 1 1 END
      PATTERN 20 6 2 6 2 6 END
      LINECAP butt
      LINEJOIN bevel
    END

Code de limites.lay

Code:

LAYER
    NAME    'Limites'
    STATUS    ON
    TYPE    LINE
    DATA    '../data/Limites.shp'
    SIZEUNITS pixels

    CLASSITEM "Type"
    
    CLASS
        NAME "Arron"
        EXPRESSION "Arron"
        STYLE
              COLOR 0 0 0
              SIZE 3
            SYMBOL "Limite_Arron"
        END # style
    END # class

    CLASS
        NAME "Muni"
        EXPRESSION "Muni"
        STYLE
              COLOR 0 0 0
              SIZE 3
            SYMBOL "Limite_Muni"
        END # style
    END # class

    CLASS
        NAME "MRC"
        EXPRESSION "MRC"
        STYLE
              COLOR 0 0 0
              SIZE 5
            SYMBOL "Limite_MRC"
        END # style
    END # class

    CLASS
        NAME "Reg_admin"
        EXPRESSION "Reg_admin"
        STYLE
              COLOR 0 0 0
              SIZE 5
            SYMBOL "Limite_MRC"
        END # style
    END # class
END # layer

Hors ligne

 

#2 Tue 16 April 2013 21:55

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 943
Site web

Re: [mapserver 6] Manque de régularité pour les lignes tiretées

Bonjour,

Vos options

Code:

      ...      
      PATTERN 20 6 2 6 END
      LINECAP butt
      LINEJOIN bevel
      ...

sont ignorées.

Voir à ce propos la documentation http://mapserver.org/MIGRATION_GUIDE.ht … ne-styling qui vous dit que depuis Mapserver 6.0, PATTERN, POSITION, GAP, LINECAP, LINEJOIN, LINEJOINMAXSIZE ne doivent plus être gérés dans les SYMBOL mais dans les STYLE

Cordialement

ThomasG

Hors ligne

 

#3 Wed 17 April 2013 16:04

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: [mapserver 6] Manque de régularité pour les lignes tiretées

Bonjour,

Merci pour la réponse.

SYMBOL était dans symbols.sym

STYLE doit être placé où?

J'ai essayé ceci, mais ça ne fonctionne pas.

Fichier limites.lay

Code:

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Limites administratives
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

LAYER
    NAME    'Limites'
    STATUS    ON
    TYPE    LINE
    DATA    '../data/Limites.shp'
    SIZEUNITS pixels

    CLASSITEM "Type"
    
    CLASS
        NAME "Arron"
        EXPRESSION "Arron"
        STYLE
              COLOR 0 0 0
              SIZE 3
            #SYMBOL "Limite_Arron"
             PATTERN 3 5 END
              LINECAP butt
             LINEJOIN bevel
        END # style
    END # class

    CLASS
        NAME "Muni"
        EXPRESSION "Muni"
        STYLE
              COLOR 0 0 0
              SIZE 3
            #SYMBOL "Limite_Muni"
              PATTERN 20 7 2 7 END
              LINECAP butt
              LINEJOIN bevel
        END # style
    END # class

    CLASS
        NAME "MRC"
        EXPRESSION "MRC"
        STYLE
              COLOR 0 0 0
              SIZE 5
            #SYMBOL "Limite_MRC"
              PATTERN 20 7 2 7 2 7 END
              LINECAP butt
              LINEJOIN bevel
        END # style
    END # class

    CLASS
        NAME "Reg_admin"
        EXPRESSION "Reg_admin"
        STYLE
              COLOR 0 0 0
              SIZE 5
            #SYMBOL "Limite_MRC"
              PATTERN 20 7 2 7 2 7 END
              LINECAP butt
              LINEJOIN bevel
        END # style
    END # class
END # layer

Hors ligne

 

#4 Wed 17 April 2013 16:59

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 943
Site web

Re: [mapserver 6] Manque de régularité pour les lignes tiretées

Bonjour,

Vous laissez les appels à SYMBOL (ils ne sont pas à commenter contrairement à votre correction) dans votre mapfile mais vous supprimez dans votre fichier symbol.sym les lignes qui contiennent PATTERN, POSITION, GAP, LINECAP, LINEJOIN, LINEJOINMAXSIZE
La documentation donne des exemples http://mapserver.org/fr/mapfile/symbolo … ction.html pour votre cas. Vous n'avez rien réussit à faire en l'utilisant?

Une autre question sur le "ça ne fonctionne pas": quel cas précis?
Par ailleurs pour vos tests, je vous recommande de ne mettre qu'une classe et qu'un style, sans labelitem, sans expression.
Le but pour vous est d'isoler pourquoi vous n'avez pas le résultat attendu. Un fois compris cela, vous pourrez recomplexifier

Cordialement

ThomasG

Hors ligne

 

#5 Thu 18 April 2013 12:49

tbonfort
Participant actif
Date d'inscription: 11 Oct 2007
Messages: 87

Re: [mapserver 6] Manque de régularité pour les lignes tiretées

Marc-André a écrit:

Bonjour,

Merci pour la réponse.

SYMBOL était dans symbols.sym

STYLE doit être placé où?

J'ai essayé ceci, mais ça ne fonctionne pas.

Fichier limites.lay

Code:

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Limites administratives
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

LAYER
    NAME    'Limites'
    STATUS    ON
    TYPE    LINE
    DATA    '../data/Limites.shp'
    SIZEUNITS pixels

    CLASSITEM "Type"
    
    CLASS
        NAME "Arron"
        EXPRESSION "Arron"
        STYLE
              COLOR 0 0 0
              SIZE 3
            #SYMBOL "Limite_Arron"
             PATTERN 3 5 END
              LINECAP butt
             LINEJOIN bevel
        END # style
    END # class

    CLASS
        NAME "Muni"
        EXPRESSION "Muni"
        STYLE
              COLOR 0 0 0
              SIZE 3
            #SYMBOL "Limite_Muni"
              PATTERN 20 7 2 7 END
              LINECAP butt
              LINEJOIN bevel
        END # style
    END # class

    CLASS
        NAME "MRC"
        EXPRESSION "MRC"
        STYLE
              COLOR 0 0 0
              SIZE 5
            #SYMBOL "Limite_MRC"
              PATTERN 20 7 2 7 2 7 END
              LINECAP butt
              LINEJOIN bevel
        END # style
    END # class

    CLASS
        NAME "Reg_admin"
        EXPRESSION "Reg_admin"
        STYLE
              COLOR 0 0 0
              SIZE 5
            #SYMBOL "Limite_MRC"
              PATTERN 20 7 2 7 2 7 END
              LINECAP butt
              LINEJOIN bevel
        END # style
    END # class
END # layer


pour mapserver >= 6.0, utiliser

Code:

CLASS
        NAME "Arron"
        EXPRESSION "Arron"
        STYLE
              COLOR 0 0 0
              WIDTH 3
              PATTERN 3 5 END
              LINECAP butt
              LINEJOIN bevel
        END # style
    END # class

et c'est tout, pas de reference au symbole.

Hors ligne

 

#6 Thu 18 April 2013 22:24

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: [mapserver 6] Manque de régularité pour les lignes tiretées

Bonjour,

Rectification.
La version utilisée n'est pas la 6.2 comme je le croyais mais la 5.4. La 6.2 sera installé sur le serveur prochainement.
J'ai donc rétabli le code comme il était.
Les essais étaient donc voués à l'échec, vu l'erreur de version.
Je tenterai donc de régler le style des embouts de lignes quand la nouvelle version sera disponible.
Je suis donc désolé de vous avoir fait perdre votre temps pour rien. hmm

En effectuant un zoom très rapproché, il semble que la séquence de tireté recommence à chaque vertex, plutôt que suivre l'ensemble de la polyligne. Résultat: quand il y a une succession de vertex courts, la ligne est presque continue. avec un long vertex, la séquence est régulière.
À quel endroit est-il possible de définir ce paramètre?

Merci tout de même.

Hors ligne

 

#7 Mon 02 June 2014 15:36

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: [mapserver 6] Manque de régularité pour les lignes tiretées

Bonjour,


Finalement, tous ces problèmes d'affichages en était un de rendu.
Ce dernier a été modifié et les lignes tiretées sont bien régulières.

Hors ligne

 

Pied de page des forums

Powered by FluxBB