Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 22 June 2009 09:38

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

[OpenLayers] Ajouter des contrôles

Bonjour à tous,

Je suis actuellement en train de compléter mon interface OL et je voudrais rajouter plus de fonctionnalités dont notamment l'outil de mesure ou encore l'affichage de l'échelle.

J'ai donc fait ceci :

Code:

    map.addControl(new OpenLayers.Control.Scale());
    map.addControl(new OpenLayers.Control.Measure());

Cependant, je n'ai pas d'échelle qui s'affiche, ni d'outil de mesure (c'est-à-dire je ne vois pas de bouton permettant le lancement de cette fonction).

Donc j'imagine que ce n'est pas aussi simple.

Mais alors comment faire ? Merci d'avance

Hors ligne

 

#2 Mon 22 June 2009 09:47

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [OpenLayers] Ajouter des contrôles

Bonjour,

Pour l'échelle graphique, il faut rajouter des définitions css dans la feuille de style. Pour le bouton mesure, il faut regarder ce qui manque : les images ? le code css ? Normalement si tu utilise firebug tu pourras voir si le controle a été créé.

http://georezo.net/wiki/main:logiciels: … rs:firebug

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Mon 22 June 2009 10:13

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: [OpenLayers] Ajouter des contrôles

Bonjour Yves,

Alors en fait, pour l'outil de mesure, j'ai une erreur si je mets :

Code:

map.addControl(new OpenLayers.Control.Measure());

Firebug me met "handler is not a constructor" dans le fichier Measure.js. Peut être quelquechose à rajoute dans les parenthèses dans Measure() ?

Quant à l'échelle, j'ai regardé dans le fichier css du thème par défaut d'OL et j'ai ceci :

Code:

.olControlScale {
    right: 3px;
    bottom: 3em;
    display: block;
    position: absolute;
    font-size: smaller;
}

Ca devrait être bon, non ?

Hors ligne

 

#4 Mon 22 June 2009 10:22

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [OpenLayers] Ajouter des contrôles

commençons par Scale : es tu sur que l'échelle ne s'affiche pas en noir en bas à droite ? Parfois c'est assez peu visible !

Tu peux tenter de rajouter un color:red;background-color:white; dans ton CSS pour que cela soit plus visible (au cas où).

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Mon 22 June 2009 10:32

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: [OpenLayers] Ajouter des contrôles

J'ai tenté de rajouter ce que tu m'as dit et même d'enlever font-size:smaller; mais rien n'y fait.

Quand j'utilise la fonction Inspecter de Firebug, si je passe sur la div correspondant au contrôle Scale, rien ne se passe. Et de plus, il est affiché en grisé par rapport aux autres div.

Hors ligne

 

#6 Mon 22 June 2009 10:36

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [OpenLayers] Ajouter des contrôles

Bonjour,

Peut on voir un bout de code ? smile Toujours plus simple que sans support wink

Merci,

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#7 Mon 22 June 2009 10:41

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: [OpenLayers] Ajouter des contrôles

Voila mon fichier HTML :

Code:

<html>
    <head>
        <title>Test</title>
        <script src="OpenLayers-2.7/lib/OpenLayers.js"></script>
        <script defer="defer" type="text/javascript">
            
            //******************** Variables globales ********************
            

            var map;

            function main(){
                
                //******************** Création de l'objet map ********************
                
                map= new OpenLayers.Map('map', 
                {maxExtent:new OpenLayers.Bounds(416635, 1729996, 685832, 1934314),
                maxResolution: 'auto',
                units:'meters',
                projection:'EPSG:27593'});
        
                map.addControl(new OpenLayers.Control.Scale());
                //map.addControl(new OpenLayers.Control.Measure());                
                
                var communes = new OpenLayers.Layer.WMS("communes_nat", 
                   "http://localhost/cgi-bin/mapserv.exe?map=c:/ms4w/Apache/htdocs/projet_test/natura.map", {layers: "communes_nat", transparent:true, format: "image/png"});
                map.addLayer(communes);
                
                var scan25 = new OpenLayers.Layer.WMS("scan25", 
                   "http://localhost/cgi-bin/mapserv.exe?map=c:/ms4w/Apache/htdocs/projet_test/natura.map", {layers: "scan25", format: "image/png"});
                map.addLayer(scan25);
                
                
                map.zoomToMaxExtent();
                
            
            }

        </script> 
        
    
        
    </head>
   
    <body onload="main();">

<div style="width:1000px; height:700px" id="map"></div>                

    </body>
</html>

Hors ligne

 

#8 Mon 22 June 2009 11:26

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: [OpenLayers] Ajouter des contrôles

Pas d'idée ?

Sinon, de manière générale, j'aimerais savoir comment on peut personnaliser son interface ?

C'est-à-dire que par défaut, on a les flèches de direction et les outils de zoom, mais j'aimerais savoir par exemple comment on peut transformer ces choses.

Par exemple, mettre le petit globe qui correspond au zoomToMaxExtent() dans un bouton à part et non pas coincer entre le zoom+ et le zoom-.
Ou encore, modifier les outils de zoom, parce que si je mets le contrôle PanZoomBar(), il se superpose aux outils de zoom par défaut.

Merci

Hors ligne

 

#9 Mon 22 June 2009 11:39

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [OpenLayers] Ajouter des contrôles

Pour le première problème je ne voie pas, le code me semble bon. Le problème pourrait venir d'un problème de cache, une mauvaise url (tu ne pointes pas sur une feuille de style correcte, etc.. Bref une petite erreur wink

Pour la deuxième, "tout" se fait par CSS.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#10 Mon 22 June 2009 12:33

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: [OpenLayers] Ajouter des contrôles

Ok tout se fait dans le CSS mais lequel ?

Parce que lorsque je modifie le style.css du theme par defaut d'OL, rien ne se modifie.

Par exemple, j'ai essayé de changer le zoomToMaxExtent en modifiant le left ou le top mais il n'a pas bougé.

Est-ce normal ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB