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 :

Suppression du cursor avec les outils de mesure


Sujet :

IGN API Géoportail

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    Par défaut Suppression du cursor avec les outils de mesure
    Dans cette page de test, comment supprimer le cursor="crosshair" (donc lui donner la valeur "none") quand on utilise les outils de mesure de distance ou de surface?

    Je ne parle pas de graphicName:'cross' (en rose), mais bien du curseur noir. Pas très cohérent d'avoir deux curseurs qui se suivent...

    1/ J'arrive à bidouiller des choses avec le "cursor" du styleMap par un code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	Geoportal.Control.MeasureToolbar.prototype.onActivate = function (evt) {
    bt=1;     .... pour déterminer quand je clique sur le bouton de mesure...
    
    
    ... Et dans le styleMap... "temporary" : new OpenLayers.Style({
    				cursor : "${getCur}"
    						}, {
    				context : {
    					
    		getCur : function (f) {
    	if (bt==1)
    {cursor = "none";}
    else cursor = "url(./image/zoomHL.gif) 5 20, pointer";}....
    Mais cela n'entre en fonction que quand je passe sur un placemark voisin...

    2/ L'idéal serait de surcharger le code qui institue ce type de cursor, mais je n'arrive pas à trouver son origine...

    Merci.

  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
    Par défaut
    Passe l'option style à la création du Geoportal.Control.MeasureToolbar
    Par défaut, le style utilisée (donc en l'absence de cette option) :

    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
    36
    37
    /**
     * Constant: DEFAULTSTYLE
     * {<OpenLayers.Style at http://dev.openlayers.org/docs/files/OpenLayers/Style-js.html>} default style applied to inner controls.
     */
    Geoportal.Control.MeasureToolbar.DEFAULTSTYLE= new OpenLayers.Style(null,{
        rules:[
            new OpenLayers.Rule({
                symbolizer:{
                    'Point':{
                        fillColor:'#99CCFF',
                        fillOpacity:1,
                        strokeColor:'#99CCFF',
                        strokeWidth:2,
                        strokeOpacity:1,
                        pointRadius:6,
                        graphicName:'cross',
                        cursor:'crosshair'
                    },
                    'Line':{
                        fillColor:'#99CCFF',
                        strokeColor:'#99CCFF',
                        strokeWidth:2,
                        strokeOpacity:1,
                        strokeDashstyle:'dot'
                    },
                    'Polygon':{
                        fillColor:'#99CCFF',
                        fillOpacity:0.25,
                        strokeColor:'#99CCFF',
                        strokeWidth:2,
                        strokeOpacity:1,
                        strokeDashstyle:'dot'
                    }
                }
            })
        ]});
    C'est dans le code ouvert de l'API

  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
    Par défaut
    Passe l'option style à la création du Geoportal.Control.MeasureToolbar
    Et ce n'est pas ce que j'ai fait? Du moins, cela a été mes premières volontés, mais j'ai (déjà évoqué dans ce fil) constaté un manque d'intégration du paramètre "cursor" qui se maintient toujours à "crosshair" via ce style. Sinon quelles sont mes erreurs de codage?
    Et s'il n'y en a pas, je reviens à ma question initiale...

  4. #4
    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
    Par défaut
    'none' ne semble pas une valeur correcte ... Et puis, pas de curseur, c'est bizarre pour faire des mesures

    As-tu essayé avec d'autres valeurs ('pointer', 'help', 'inherit') voire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    url('chemin_vers_image.cur'), pointer

  5. #5
    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
    Par défaut
    Dans les styleMap classique "none" attribué à curseur est ok. C'est pour cela que je l'employais ici.

    Et puis, pas de curseur, c'est bizarre pour faire des mesures
    Pas vraiment puisque nous avons graphicName:'cross' qui se maintient et "visualise" l'emplacement du cursor. Mais bon, tout cela n'explique pas comment changer la forme de cursor...

    Avant d'arriver à ce "none", j'ai bien sûr employé d'autres valeurs ("wait", "crosshair"...) mais aucun n'était opérationnel. De même pour "url('chemin_vers_image.cur') X Y, pointer...

    Ma question reste d'actualité: Comment changer la forme du cursor quand on appelle les outils de mesure?

  6. #6
    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
    Par défaut
    Citation Envoyé par cmail Voir le message
    Ma question reste d'actualité: Comment changer la forme du cursor quand on appelle les outils de mesure?
    Comme d'hab. voilà la solution que j'ai du finalement (ré-)écrire :

    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
    36
    37
    38
    39
    40
    41
    42
    43
        var measurebar= new Geoportal.Control.MeasureToolbar(
            {
                div: OpenLayers.Util.getElement(tbx.id+'_measure'),
                displaySystem:
                    (viewer.getMap().getProjection().getProjName()=='longlat'?
                        'geographic'
                    :   'metric'),
                targetElement: OpenLayers.Util.getElement(tbx.id+'_meares'),
                style: new OpenLayers.Style(null,{
                    rules:[
                        new OpenLayers.Rule({
                            symbolizer:{
                                'Point':{
                                    fillColor:'#99CCFF',
                                    fillOpacity:1,
                                    strokeColor:'#99CCFF',
                                    strokeWidth:2,
                                    strokeOpacity:1,
                                    pointRadius:6,
                                    graphicName:'cross',
                                    cursor:'none'
                                },
                                'Line':{
                                    fillColor:'#99CCFF',
                                    strokeColor:'#99CCFF',
                                    strokeWidth:2,
                                    strokeOpacity:1,
                                    strokeDashstyle:'dot'
                                },
                                'Polygon':{
                                    fillColor:'#99CCFF',
                                    fillOpacity:0.25,
                                    strokeColor:'#99CCFF',
                                    strokeWidth:2,
                                    strokeOpacity:1,
                                    strokeDashstyle:'dot'
                                }
                            }
                        })
                    ]})
            }
        );
    ça marche très bien chez moi, j'ai effectivement plus le curseur (mais une grosse croix bleue)

    A toi de comprendre pourquoi ton code ne fonctionne pas ...

  7. #7
    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
    Par défaut
    A l'évidence avec la correction apportée, c'est beaucoup mieux.

    Cependant, je constate encore quelques petits problèmes résiduels :
    1/ Le cursor par défaut "crosshair" réapparait rapidement par intermittence tout au long des tracés. Comme c'est par flash, cela pourrait être un défaut négligeable. Mais je tiens à le signaler.
    2/ Plus embêtant, les étiquettes de 'olControlMeasurePath.title' ou de 'olControlMeasurePolygon.title' apparaissent en cours de tracé quand la souris arrête son déplacement. Ce qui ne me semble pas un comportement normal. Non?

  8. #8
    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
    Par défaut
    Citation Envoyé par cmail Voir le message
    Cependant, je constate encore quelques petits problèmes résiduels :
    1/ Le cursor par défaut "crosshair" réapparait rapidement par intermittence tout au long des tracés. Comme c'est par flash, cela pourrait être un défaut négligeable. Mais je tiens à le signaler.
    Effectivement, mais c'est sporadique ... Merci

    Citation Envoyé par cmail Voir le message
    2/ Plus embêtant, les étiquettes de 'olControlMeasurePath.title' ou de 'olControlMeasurePolygon.title' apparaissent en cours de tracé quand la souris arrête son déplacement. Ce qui ne me semble pas un comportement normal. Non?
    Je ne constate rien

  9. #9
    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
    Par défaut
    Plus embêtant, les étiquettes de 'olControlMeasurePath.title' ou de 'olControlMeasurePolygon.title' apparaissent en cours de tracé quand la souris arrête son déplacement.
    Dans la procédure de mesure, après avoir déplacé la souris, il faut attendre quelques instants (5 à 10 secondes) dans une position fixe de la souris, et avant de (re)cliquer.
    Pas visible sous chrome mais bien présent sous FF.

Discussions similaires

  1. [BUG]problème avec les outils
    Par Maxoo dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 7
    Dernier message: 22/04/2006, 09h52
  2. Réponses: 6
    Dernier message: 03/10/2005, 18h42

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