IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SIG : Système d'information Géographique Discussion :

[GeoTools] Problème d'affichage


Sujet :

SIG : Système d'information Géographique

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 18
    Points
    18
    Par défaut [GeoTools] Problème d'affichage
    Bonjour,

    J'ai un petit soucis avec la geotools que je suis en train de (re)prendre en main.

    Lorsque je veux afficher un shapefile, je n'ai pas de soucis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    private static JFrame frm = new JFrame("Tests Features");
        
        private static MapContext mapcontext = new DefaultMapContext(DefaultGeographicCRS.WGS84);
        private static GTRenderer renderer = new StreamingRenderer();
        private static JMapPane mappane = new JMapPane();
        
        /**
         * @param args
         * @throws IllegalAttributeException 
         * @throws IOException 
         */
        public static void main(String[] args) throws IllegalAttributeException, IOException {
            mappane.setBackground(new Color(157,201,255));
            
            frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frm.setSize(new Dimension(800,600));
            frm.setContentPane(mappane);
            
            mapcontext.setTitle("First try to display feature");
            mappane.setContext(mapcontext);
            
            URL shapefile = _1_TestShape.class.getResource("/shape/bc_border.shp");
            ShapefileDataStore store = new ShapefileDataStore(shapefile);
            String name = store.getTypeNames()[0];
            FeatureSource source = store.getFeatureSource(name);
            
            StyleBuilder sb = new StyleBuilder();
            PolygonSymbolizer ps = sb.createPolygonSymbolizer(new Color(253,241,187),1);
            Style solstyle = sb.createStyle();
            solstyle.addFeatureTypeStyle(sb.createFeatureTypeStyle(ps));
            
            MapLayer layer;
            
            layer = new DefaultMapLayer(source,solstyle);
            layer.setTitle("My first Shape");
            layer.setVisible(true);
            
            mapcontext.addLayer(layer);
            
            mappane.setRenderer(renderer);
            mappane.setMapArea(mapcontext.getLayerBounds());
            
            frm.setVisible(true);
        }
    m'affiche bien mon shapefile sur un fon bleuté...
    Mais lorsque je désire créer des "features" à la main, alors là, je n'ai plus rien à l'écran :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
        private static JFrame frm = new JFrame("Tests Features");
        
        private static MapContext mapcontext = new DefaultMapContext(DefaultGeographicCRS.WGS84);
        private static GTRenderer renderer = new StreamingRenderer();
        private static JMapPane mappane = new JMapPane();
        
        /**
         * @param args
         * @throws IllegalAttributeException 
         * @throws IOException 
         */
        public static void main(String[] args) throws IllegalAttributeException, IOException {
            mappane.setBackground(new Color(157,201,255));
            
            frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frm.setSize(new Dimension(800,600));
            frm.setContentPane(mappane);
            
            mapcontext.setTitle("First try to display feature");
            mappane.setContext(mapcontext);
            
            DefaultFeatureTypeBuilder builder = new DefaultFeatureTypeBuilder();
            builder.setName("Test");
            builder.add("point", Point.class);
            
            DefaultFeatureType pointType = builder.buildFeatureType();
            
            Point pt = new GeometryFactory().createPoint(new Coordinate(0,0));
            Point pt2 = new GeometryFactory().createPoint(new Coordinate(10,15));
            Point pt3 = new GeometryFactory().createPoint(new Coordinate(-10,-3));
            
            DefaultFeature feature = (DefaultFeature)pointType.create(new Object[] {pt}, "1");
            DefaultFeature feature2 = (DefaultFeature)pointType.create(new Object[] {pt2}, "2");
            DefaultFeature feature3 = (DefaultFeature)pointType.create(new Object[] {pt3}, "3");
            
    //        StyleBuilder sb = new StyleBuilder();
    //        PointSymbolizer ps = sb.createPointSymbolizer();
    //        Style ptStyle = sb.createStyle();
    //        ptStyle.addFeatureTypeStyle(sb.createFeatureTypeStyle(ps));
            
            SLDParser parser = new SLDParser(new StyleFactoryImpl());
            URL sld = _2_TestSimplePlace.class.getResource("/shape/sld.xml");
            parser.setInput(sld);
            Style ptStyle = parser.readXML()[0];
            
            System.out.println("FEATURES :");
            System.out.println("\t" + feature);
            System.out.println("\t" + feature2);
            System.out.println("\t" + feature3);
            
            DefaultFeatureCollection col = new DefaultFeatureCollection("id",pointType);
            col.add(feature);
            col.add(feature2);
            col.add(feature3);
            
            MapLayer layer;
            
            layer = new DefaultMapLayer(col,ptStyle);
            layer.setTitle("My first Place");
            layer.setVisible(true);
            
            System.out.println("LAYER :");
            System.out.println("\t" + layer);
            System.out.println("\tBounds = " + layer.getBounds());
            
            mapcontext.addLayer(layer);
            mapcontext.setAreaOfInterest(layer.getBounds());
            
            System.out.println("MAPCONTEXT :");
            System.out.println("\t" + mapcontext.getLayerBounds());
            
            mappane.setRenderer(renderer);
            
            frm.setVisible(true);
        }
    me fournit uniquement le fond bleu...
    Comment cela se fait-il ? Y a t il une transformation a effectuer dans les coordonnées des points ??? :o:

    A titre indicatif, mon SLD est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?xml version="1.0" encoding="UTF-8"?>
    <UserStyle xmlns:ogc="http://www.opengis.net">
        <FeatureTypeStyle>
        
            <!-- This part specifies the point symbol -->
            <Rule>
                <PointSymbolizer>
                    <Geometry>
                        <ogc:PropertyName>point</ogc:PropertyName>
                    </Geometry>
                    <Graphic>
                        <Mark>
                            <WellKnownName>star</WellKnownName>
                            <Fill>
                                <CssParameter name="fill">#ee3b3b</CssParameter>
                                <CssParameter name="fill-opacity">0.6</CssParameter>
                            </Fill>
                            <Stroke>
                                <CssParameter name="stroke">#0000ee</CssParameter>
                                <CssParameter name="stroke-opacity">1</CssParameter>
                                <CssParameter name="stroke-width">1</CssParameter>
                            </Stroke>
                        </Mark>
                        <Size>12.0</Size>
                    </Graphic>
                </PointSymbolizer>
            </Rule>
        </FeatureTypeStyle>
    </UserStyle>
    Merci d'avance pour votre aide !
    Thomas

    PS : j'espère que je poste au bon endroit ?

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    je te renvois sur ton post sur ForumSIG :
    http://www.forumsig.org/showthread.php?t=16932
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

Discussions similaires

  1. Problème d'affichage
    Par mustang-gx dans le forum Bases de données
    Réponses: 8
    Dernier message: 26/01/2005, 22h54
  2. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 16h59
  3. [Kylix] problème d'affichage
    Par scalvi dans le forum EDI
    Réponses: 1
    Dernier message: 18/06/2003, 10h07
  4. Réponses: 1
    Dernier message: 06/03/2003, 11h57
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo