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 Sat 08 December 2012 00:08

halim93200
Juste Inscrit !
Date d'inscription: 4 Nov 2012
Messages: 3

[Openlayers] Définir <label: "${name}"> comme VARIABLE

Bonjour,

J'utilise OPENLAYERS pour afficher un Overlay "TOTO", une carte avec des données provenant d'un fichier OSM (fichier.osm par JOSM).

Code:

                var TOTO = new OpenLayers.Layer.Vector("TOTO", {
                    strategies: [new OpenLayers.Strategy.Fixed()],
                    protocol: new OpenLayers.Protocol.HTTP({
                        url: "fichier.osm",   //<-- relative or absolute URL to your .osm file
                        format: new OpenLayers.Format.OSM()
                    }),
                    projection: new OpenLayers.Projection("EPSG:4326"),
            styleMap: myStyles,                           
            rendererOptions: {zIndexing: true}          
                });
 
                map.addLayers([TOTO]);

Ensuite j'affiche une donnée du fichier.osm qui est le LABEL "name" en Rouge avec un style de cette forme:

Code:

 var myStyles = new OpenLayers.StyleMap({
                "default": new OpenLayers.Style({
            label: "${name}",     <<<<<<<< NAME à affecter à une variable
                fontColor: "red",
            cursor: 'pointer',...

Dans mon code myStyles est placé au dessus de TOTO (avant TOTO).


MOM PROBLEME: Je souhaite utiliser NAME pour autre chose et l'affecter à une variable lorsque je CLICK dessus avec ma souris.

Je cherche à avoir un truc du genre : var MA_VARIABLE = label: "${name} et à quel endroit du code ?

Pouvez vous m'aider ?

Merci

Hors ligne

 

#2 Sat 08 December 2012 10:29

gallab
Participant occasionnel
Lieu: Marseille
Date d'inscription: 28 May 2010
Messages: 19

Re: [Openlayers] Définir <label: "${name}"> comme VARIABLE

Bonjour,

Il me semble que vous pouvez déclarer une variable ds votre code, par ex:

Code:

var nomLabel = "blabla";

et l'utiliser par la suite ds la déclaration de myStyle comme ceci :

Code:

label: nomLabel,

L'autre problème est de récupérer l'événement onClick déclenché par l'utilisateur en utilisant le bon élement du DOM.

bonne chance.


Gallien

Hors ligne

 

#3 Sat 08 December 2012 10:51

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: [Openlayers] Définir <label: "${name}"> comme VARIABLE

Bonjour,

Dans le style, "${name}" fait référence à l'ensemble des valeurs du champ "name". Tu ne peux pas le mettre en variable avec cette méthode.

Tu veux créer une variable pour chaque valeur de ta table osm???

Tu as déjà une table vecteur, 'TOTO", il faut ajouter une icône pour chaque objet, même transparente, que tu rends cliquable.


Opérateur cartographique & DAO & PHP.

Hors ligne

 

Pied de page des forums

Powered by FluxBB