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

IGN API Géoportail Discussion :

Ajout d'une couche vector par dessus une application Geoportail


Sujet :

IGN API Géoportail

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Ajout d'une couche vector par dessus une application Geoportail
    Bonjour,

    Voici le but à accomplir:
    - Ajouter une couche vectorielle (ligne, polygone, etc.) sur une couche GeoPortail.

    Dans le code ci-dessous, vous verrez que j'utilise une transformation afin que la couche apparaisse à la bonne place.

    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
    function drawLine() {
        var red_line =
        {
             strokeColor: "#FF0000",
             strokeOpacity: 1,
             strokeWidth: 2
        };
    
        var vectors = new OpenLayers.Layer.Vector(
            "vector",
            {
                isBaseLayer: false, 
                projection: "EPSG:4326",
                units:'degrees'
            });
            
        viewer.getMap().addLayers([vectors]);
    
        var feature = new OpenLayers.Feature.Vector(
                    OpenLayers.Geometry.fromWKT(
                        "LINESTRING (1.6557909885932145 48.304660399735035, 1.6555515027216852 48.30437681173791, 1.6550919003077784 48.3038743132898, 1.6546326716923661 48.303370691082094, 1.65432313781878 48.303050423396741, 1.6538312081148816 48.302523599303804, 1.6535257517053861 48.302209718843, 1.6531397158008316 48.30181264007421, 1.6525258988770943 48.301197274574648, 1.6515708522165322 48.300268386980967, 1.6511234924382594 48.299842243641635, 1.6501406175036872 48.298943293535423, 1.6492237965621 48.2981571038898, 1.6487300662990581 48.29772068150676, 1.6483108091833707 48.297375577540443, 1.6474229850064885 48.296640829405767, 1.64608333426514 48.295600926555771, 1.6450735026584609 48.294847910721913, 1.6445558490111827 48.294459792973534, 1.643840935687406 48.293940208379027, 1.6433639634294981 48.293604232058328, 1.6426470142213421 48.29310178352047, 1.6420729607752891 48.292714068129463, 1.6413603800999728 48.292239663498641, 1.6407972554227237 48.2918796638495, 1.6399625193626426 48.29134729777607, 1.6394761660601112 48.291039527569289, 1.6383673804215666 48.29034809516331, 1.6372630573781555 48.289703083395537, 1.6368880192089621 48.28948858437537, 1.6361041180278286 48.289060811029749, 1.635550440363418 48.288748190563574, 1.6347977493787329 48.288346714308176, 1.6342098367133393 48.288034251900442, 1.6330851258036998 48.2874451218408, 1.6318617984819388 48.286829557855746, 1.6312672281523584 48.28653383654764, 1.630222667809216 48.286032295078478, 1.6296120602404127 48.285737305154655, 1.6283510313943055 48.285138120482713, 1.6271469003014942 48.284571526367621, 1.6258174388418973 48.2839433173601, 1.6244222027175432 48.283283134781762, 1.6238535288058751 48.283011961563375, 1.6227959720232736 48.282498665557263, 1.6216560759648857 48.281916865740939, 1.6212569054462425 48.281703553361147, 1.620490775368119 48.281315037683548, 1.6198119100251731 48.280943197033352, 1.6187482580680799 48.280350610861419, 1.6177499303596326 48.279782061420441, 1.6168073754001795 48.279239317303819, 1.6161282027259099 48.278829930956228, 1.61528791148415 48.278306565385925, 1.6147251683660742 48.277956266179004, 1.6139245980775157 48.2774409836449, 1.6133069482558675 48.277039429973584, 1.6125414121815582 48.276525269975629, 1.6115970788407685 48.275887313521565, 1.611042414480264 48.275490226452689, 1.6100459934580145 48.274766470781145, 1.60957056227133 48.2744007784887, 1.6084234759164886 48.273544935196711, 1.6080541023561048 48.273264143736462)"
                    ), null, red_line
                );
        // Ligne à ajouter pour que ça fonctionne avec la carte IGN...
        feature.geometry.transform(new OpenLayers.Projection("EPSG:4326"), viewer.projection);
    
        // Ajouter le feature (ligne)
        vectors.addFeatures([feature]);
    }
    J'aimerais savoir, si quelqu'un sait pourquoi qu'il faut que je fasse un "transform" malgré que j'aie spécifié que mes points sont en EPSG:4326 ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    A priori parce que ce n'est pas la bonne méthode
    Pour que les reprojections soient "automatiques", il faut que la source les supporte lors de la lecture des données initiales. Tu es donc obligé de le faire "manuellement".

    Tu crées une couche vectorielle en insérant des points à l'intérieur "à la main", j'utiliserai plutôt OpenLayers.Format.WKT pour créer la source comme on fait avec KML/GPX/OSM. EN spécifiant la projection ET formatOptions dans les options de création du layer, tu devrais t'en sortir

Discussions similaires

  1. Ajout d'une view par dessus une autre
    Par lokomass dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 13/08/2012, 15h49
  2. Réponses: 3
    Dernier message: 31/10/2005, 16h47
  3. [Dx9] Dessiner un curseur par dessus une texture
    Par SteelBox dans le forum DirectX
    Réponses: 16
    Dernier message: 25/04/2005, 20h38
  4. [W3C] Est-il possible d'afficher un div par dessus une applet ?
    Par drinkmilk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/02/2005, 10h22
  5. Mettre du texte sur une vidéo(ou par dessus un tmediaplayer)
    Par souch dans le forum Composants VCL
    Réponses: 9
    Dernier message: 08/07/2004, 13h30

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