#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