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 :

Renommer la couche dessin générée automatiquement par ol.control.Drawing (openlayer v3)


Sujet :

IGN API Géoportail

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 40
    Points : 27
    Points
    27
    Par défaut Renommer la couche dessin générée automatiquement par ol.control.Drawing (openlayer v3)
    Bonjour,

    Je tourne en rond sur ce problème. Je voudrais simplement renommer la couche qui se génère automatiquement lorsque l'utilisateur commence à dessiner avec ce contrôle.
    J'ai bien essayer d'affecter au contrôle une couche vectorielle en utilisant la fonction setLayer du dit ol.control.Drawing ... mais rien.

    Je suppose que c'est tout simple donc si une bonne ame ... merci d'avance.

  2. #2
    Membre averti Avatar de lowzonenose
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 196
    Points : 407
    Points
    407
    Par défaut Couche vecteur avec un titre
    Je vous renvoie vers cette discussion :
    http://www.developpez.net/forums/d15...-layer-dessin/

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    Merci cela m'a fait avancé d'un pas (j'ai donc une layer liée à mes dessins) mais par contre, je n'arrive quand même pas à nommer la couche.

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var dessinLayer = new ol.layer.Vector({ 
    													title : 'Dessin', 
    													description : 'Dessin',
    													source : vecteurSource,
    													opacity: 0.9
    												});
    opacity marche mais pas le title
    ou ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dessinLayer.set('name', 'Dessin'); // ou set => title
    ou encore par "ol.control.LayerSwitcher" rien à faire et la aucune de mes couches ne se renomme.

    Edit : par contre dessinLayer.getProperties()['title'] me donne bien "Dessin" comme valeur ?! j'en déduis que cela prend pas dans ol.control.LayerSwitcher ?!

  4. #4
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    Bonjour,

    le rajout des définitions de la couche dans le layerSwitcher se fait à l'aide de la méthode addLayer de ce denier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var dessinLayer = new ol.layer.Vector({...}) ;
    ...
    // ls est le layerSwitcher
    ls.addLayer({
        layer : dessinLayer,
        config : {
            title : ...
            description :  ...
            ...
        }
    })

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    J'obtiens donc :
    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
    var dessinfeatures = new ol.Collection();
    var vecteurSource = new ol.source.Vector({features: dessinfeatures});
    dessinLayer = new ol.layer.Vector({ 
    													title : 'Dessin', 
    													description : 'Dessin',
    													source : vecteurSource,
    													opacity: 0.9
    												});
    map = new ol.Map({
    					target: 'wrk_map',
    					interactions: ol.interaction.defaults({mouseWheelZoom: false,dragPan: false, doubleClickZoom: false}),
    					controls: [],
    					layers: [
    						cadastre,
    						carte_ign,
    						photo_geoportail,
    						dessinLayer
    					],
    					view: new ol.View({
    						center: [coords[0],coords[1]],
    						zoom: 19, // 18,
    						projection : "EPSG:2154" // lambert 93
    					})
    				});
    
    var lsControl = new ol.control.LayerSwitcher({});
    map.addControl(lsControl);
    lsControl.addLayer({
    					layer : dessinLayer,
    					config : {
    						title : "dessin", 
    						description : "Couche de dessin"
    					}
    				});
    Je n'ai toujours pas de nom correcte
    Mais il me semblait plus logique de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var lsControl = new ol.control.LayerSwitcher({});
    lsControl.addLayer({
    					layer : dessinLayer,
    					config : {
    						title : "dessin", 
    						description : "Couche de dessin"
    					}
    				});
    map.addControl(lsControl);
    Mais la j'ai une erreur javascript "n is null" ligne 99 (17454) ...

    Je dois mélanger quelque chose

  6. #6
    Membre averti Avatar de lowzonenose
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 196
    Points : 407
    Points
    407
    Par défaut
    Essayez plutôt ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var lsControl = new ol.control.LayerSwitcher({});
    lsControl.addLayer( dessinLayer, {
         title : "dessin", 
         description : "Couche de dessin"
    });
    map.addControl(lsControl);

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    Alors avec le map.addcontrol après j'ai toujours l'erreur javascript mais en le mettant avant ça marche merci.
    Donc la solution c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var lsControl = new ol.control.LayerSwitcher({});
    map.addControl(lsControl);
    lsControl.addLayer( dessinLayer, {
    					 title : "dessin", 
    					 description : "Couche de dessin"
    				});

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Ajouter des attributs à une classe générée automatiquement par Entity
    Par Pelote2012 dans le forum Entity Framework
    Réponses: 2
    Dernier message: 20/11/2014, 16h07
  2. [Nouveau forum] Notification automatique par email ?
    Par anitshka dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 17
    Dernier message: 02/06/2006, 08h50
  3. Réponses: 1
    Dernier message: 30/05/2006, 15h12
  4. Réponses: 3
    Dernier message: 31/10/2005, 16h47
  5. [Dx9] Dessiner un curseur par dessus une texture
    Par SteelBox dans le forum DirectX
    Réponses: 16
    Dernier message: 25/04/2005, 20h38

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