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 :

measurebar dans une div


Sujet :

IGN API Géoportail

  1. #1
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut measurebar dans une div
    Un petit problème que je traine depuis longtemps... Que Jérémy saura m'expliquer!

    Je souhaite mettre le Control.MeasureToolbar dans une div particulière (par exemple #over)

    En écrivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var tbx = viewer1.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
    var measurebar = new Geoportal.Control.MeasureToolbar(
    	{div: OpenLayers.Util.getElement(tbx.id+'_measure'),
    		targetElement: OpenLayers.Util.getElement(tbx.id+'_meares')
    	}
    );
    viewer1.getMap().addControl(measurebar);    
    $("#over").html($(".gpControlMeasureToolbar"));
    J'ai bien mes boutons dans #over, mais .gpControlMeasureToolbarResult reste attaché à Control.ToolBox

    J'arrive à avoir .gpControlMeasureToolbar et .gpControlMeasureToolbarResult dans #over avec :
    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
    var tbx = viewer1.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
    var measurebar = new Geoportal.Control.MeasureToolbar(
    	{div: OpenLayers.Util.getElement(tbx.id+'_measure'),
    		targetElement: OpenLayers.Util.getElement(tbx.id+'_meares')
    	}
    );
    viewer1.getMap().addControl(measurebar);
     
    var toolbar = new OpenLayers.Control.Panel({
    			displayClass : 'cmToolbar',
    			id : 'id_cmToolbar'
    		});
    	viewer1.getMap().addControl(toolbar);
    	toolbar.addControls([tbx]);
    	$("#over").html($("#id_cmToolbar"));
    mais cela "double" la toolbox . En jouant sur les css, je rends invisible le double de la toolbox, mais cela n'est pas bien, et me gène...

    Comment faire cela proprement?

  2. #2
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    Si je comprends bien, tu veux afficher dans la même div #over à la fois les outils de mesure (.gpControlMeasureToolbar) et le résultat de la mesure (.gpControlMeasureToolbarResult) ?

    Dans ce cas, la meilleure solution est de découper ta div en deux div distinctes, l'une pour accueillir les outils, l'autre pour accueillir le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div id="over">
    	<div id="over_tools"></div>
    	<div id="over_result"></div>
    </div>
    La div #over_tools sert à accueillir les outils, de la même manière que la première version du code que tu proposes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var tbx = viewer1.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
    var measurebar = new Geoportal.Control.MeasureToolbar(
    	{div: OpenLayers.Util.getElement(tbx.id+'_measure'),
    		targetElement: OpenLayers.Util.getElement(tbx.id+'_meares')
    	}
    );
    viewer1.getMap().addControl(measurebar);    
    $("#over_tools").html($(".gpControlMeasureToolbar"));
    
    // Ajout de la barre de mesure
    viewer1.getMap().addControl(measurebar);
    La div #over_result sert à accueillir le résultat, en ajoutant la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#over_result").html($(".gpControlMeasureToolbarResult"));
    Après, tu as juste à gérer ton CSS pour que chacune de ces deux div internes s'affiche comme tu le souhaites suivant le souhait initial de design de la div englobante #over.

    Avec ce code, sans aucun effort de mise en forme, voilà ce que j'obtiens (la div #over en bordure verte, les deux div internes en bordures rouges et bleues) :

    Nom : 2014-05-07_171221.png
Affichages : 78
Taille : 12,9 Ko

  3. #3
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Ce n'est pas possible d'être aussi nul! Je parle de moi.

    Je n'ai pas mis en pratique, mais à la lecture de ton retour cela me semble maintenant évident.
    Et dire que j'allais chercher des noeuds ....

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

Discussions similaires

  1. Depassement dans une div
    Par Linaa dans le forum Langage
    Réponses: 5
    Dernier message: 01/12/2005, 08h14
  2. [CSS] Comment faire apparaitre l'ascenceur dans une <div&
    Par vampyrx dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 08/09/2005, 10h06
  3. Introduire du text dans une div
    Par 10-nice dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/09/2005, 11h50
  4. barre de defilement dans une div
    Par barbarius dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/06/2005, 14h19
  5. autoscroll dans une div
    Par c@rtm@n dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2005, 22h52

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