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 et affichage d'un point sur la carte


Sujet :

SIG : Système d'information Géographique

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Geotools et affichage d'un point sur la carte
    Bonjour tout le monde;
    Je suis en train de travailler sur un projet de géolocalisation et j'utilise éclipse3.0.
    Mon problème est : comment afficher une carte et un point sur la carte (fichier shape, svs ou svg) étant donnés les coordonnés du point (latitude et longitude), Quelle API utiliser (probablement de geotools)?...
    Je suis vraiment coincé...aidez moi svp
    Merci d'avance.

  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
    tu me rassures, je n'ai pas fait un article pour rien :

    http://jsorel.developpez.com/tutoriels/java/geotools/

    ca devrait te donner les premieres bases pour ne pas partir dans l'inconnu.

    n'hésite pas a demander quand tu auras des soucis
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

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

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci pour le lien, je vais voir si ca peut m'aider.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Génial, le tutorial que vous m'avez donnez marche très bien.
    Maintenant, j'aimerais bien savoir manipuler les fichiers *.dbf. C'est à dire, si j'ai les coordonnés d'un point (par exemple), comment puis je afficher le point sur la carte.

    Merci pour ton aide

  5. #5
    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
    En SIG on utilise beaucoup 2 types de données :

    le fichier shape, qui se compose de fichiers :
    - .shp (pour les geometries)
    - .dbf (databasefile, pour les données attributaires)
    - .shx (indexation, lien attributaire/geometrie, si je me trompe pas)
    - .prj (pour stocker la projection des données)

    et la base de données PostGIS :
    c'est l'extension spatiale de postgreSQL.


    3 facons d'ajouter tes données :

    - si tu choisis postgis c'est relativement simple d'ajouter des données en SQL , un petit lien pour debuter si tu choisis cette solution :
    ftp://ftp-developpez.com/jsorel/post...%20PostGIS.pdf

    - si tu choisis les shapefiles tu peux en créé un de toute piece en utilisant un logiciel comme QGIS ou GvSIG. et tu créé les géométries (tes points) en "dessinant".

    - et derniere solution , le faire en code avec geotools, dans ce cas je te renvois sur la doc officiel (en anglais désolé) :
    creer un fichier shape :
    http://docs.codehaus.org/display/GEO...apefile+Plugin
    ajouter des données :
    http://docs.codehaus.org/display/GEO...7+FeatureStore


    je te laisse faire ton choix pour le moment
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

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

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci pour les docs,
    je suis en train de les étudier...

    Ce n'est pas chose aisée
    a+

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    J'ai commencé par essayer d'ajouter des données en utilisant geotools (la 3ème méthode).
    Seulement j'ai des erreurs dans le code proposé que je n'ai pas très bien assimilé.


    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
    DefaultTransaction t=new DefaultTransaction();
        URL shapeURL = Main.class.getResource("/exemple.shp");
        ShapefileDataStore store = new ShapefileDataStore(shapeURL);
        String name = store.getTypeNames()[0];
        
        FeatureStore store1=(FeatureStore)DataStore.getFeatureSource(name);//ici est marqué que la méthode n'est pas statique
        
        store1.setTransaction(t);//l'erreur est variabledeclaratorid expected
        
        FeatureType featureType=store1.getFeatureType();//erreur:getfeatureType n'est pas définie pour featureStore
        
        DefaultFeatureCollection collection=new DefaultFeatureCollection("col",featuretype);
        collection.add(featureType.create(new Object[] {geom1,"hello"}));//erreur: misplaced construct(s)
        
        try
        {
            store1.addFeatures(collection);
            t.commit();
            
        }
        catch (Exception cek){ t.rollback();
        }
    Pourtant j'ai suivi bêtement le document (avec quelques modifications évidentes;

    En plus le 'typeName' (name dans le code) je l'ai récupérer d'un shapefile, je ne sait pas ce qu'il faut faire si je veux ajouter un type autre que celui qui existe dans le shapefile...Peut être qu'il faut créer un autre shapefile.

    Voulez vous m'expliquer s'il vous plait l'origine des erreurs, et surtout le 'Datastore' (sa fonction, le type de données qu'il retourne ...;

    Merci beaucoup de me répondre

  8. #8
    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
    ...
    j'ai jamais testé.


    je vais te faire une partie de boulot . en temps normal je prendrais pas sur mon temps. mais la je cherches a faire une sorte de JDialog de création de shapefile.

    je te passerai un lien pour le recuperer.
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

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

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    ...
    Ca serait génial.

    Juste une question qui m'ai venue à l'esprit: Comment exploiter le fichier DBF.
    Ce fichier contient les attributs des formes géométriques de la carte. S'il s'agissait d'une carte géographique, on aura par exemple les nom des villes et des rues, leurs coordonnés sur la carte...
    Donc, la question est comment afficher un point(x,y) à un endroit (ville, rue, n°) (autrement faire des requêtes sur les attributs, en utilisant géotools).
    J'ai des doutes qu'on doit utiliser le fameux Datastore.getFeature..., car c'est lui qui contient les caractéristiques des formes géométriques, mais comme je connais pas sa structure, je ne sais pas comment l'utiliser...

    Est ce que je me trompe...


  10. #10
    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 t'avous que je ne travail que sur les interfaces utilisateurs pour le moment. je ne me suis pas encore plongé dans la bete si on peut dire.


    De plus la documentation se rempli que depuis 1 ou 2 mois, ce qui fait que je n'ai pas enormement d'avance sur toi.


    je te donnes ce que j'ai fait pour le moment a propos des attributs :

    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
    layer = (MapLayer)target;        
    source = layer.getFeatureSource();
    FeatureCollection = source.getFeatures(layer.getQuery());
    ArrayList<Feature> features = new ArrayList<Feature>();
    
    //recuperer la structure
    FeatureType ft = collection.getSchema();
            
            for(int i=0; i<ft.getAttributeCount(); i++ ){
                columns.add(ft.getAttributeType(i).getName());
                classes.add(ft.getAttributeType(i).getType());
            }
    
    //parcourir les elements
    FeatureIterator fi = collection.features();
            
            while(fi.hasNext()){
                features.add(fi.next());
            }
    
    //lire une valeur attributaire
    features.get(rowIndex).getAttribute(columnIndex)
    Le code ci dessus ne marche pas forcement, j'ai pioché a droite a gauche dans mon code. si tu souhaites quelque chose de cohérent je te conseil de recuperer le source de mes interfaces ici (avec SVN) :
    http://subversion.developpez.com/pro...outil/v1/trunk


    j'espere que ca t'aidera.

    ps : n'attends pas que mon travail soit fait pour avancer. je n'ai pas vraiment d'idée du temps que ca prendra.
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

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

  11. #11
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup pour le code, ca m'a inspiré, sauf que j'ai utilisé shapefiledatastore.getSchema.getAttributeName (et Type) car j'ai eu des erreurs en exécutant ton code (utilisant connection)

    Je vais voir à présent la source des interfaces que vous m'avez donnée et en parallèle j'essai d'afficher un point sur la carte connaissant les attributs...

  12. #12
    Membre régulier
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 118
    Points : 84
    Points
    84
    Par défaut
    Ton Tuto est super seulement, je n'arrive pas à afficher les chapitres 3, 4 et 5.
    SJCP 1.6

Discussions similaires

  1. Affichage de dizaine de millier de points sur une carte
    Par cseon dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 24/06/2015, 11h31
  2. reporté points sur une carte
    Par ricololo dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/04/2009, 11h46
  3. [Débutante] Extrapolation de point sur une carte
    Par chlorure007 dans le forum MATLAB
    Réponses: 5
    Dernier message: 16/12/2008, 16h48
  4. Geotools et affichage d'un point sur la carte
    Par ICS123 dans le forum 2D
    Réponses: 10
    Dernier message: 03/09/2007, 15h43
  5. Calque -> Un point sur une carte de france
    Par TATAYET dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/04/2005, 15h48

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