#1 Fri 06 May 2011 17:17
- khalid_sig
- Participant actif
- Date d'inscription: 7 Apr 2011
- Messages: 52
[openlayers] comment avoir id feature selected du vector
Bonjour
j'ai une couche polygone et son vector, ils s'affichent et j'arrive à récupérer l'area du feature que je sélectionne, mais pas les autres champs notamment l'ID:
featureselected: function(event) {
var feature = event.feature;
var area = feature.geometry.getArea();
var id = feature.attributes.key;
Comment devrais-je récupérer l'ID car ce code me renvoi undefined ?
j'ai essayé geometry.id mais ça me donne à chaque fois un nouveau numéro qui ne correspond pas à mon ID.
Merci
Hors ligne
#2 Tue 10 May 2011 11:07
- sigdu80
- Participant actif
- Date d'inscription: 2 Sep 2010
- Messages: 112
Re: [openlayers] comment avoir id feature selected du vector
Bonjour,
utilises-tu firefox et firebug ?
fais un console.log(feature.data) dans ta fonction featureselected.
dans la console firebug, clique sur la ligne qui vient d'apparaître, a priori, tu devrais trouver les champs liés à cette feature.
J'imagine que la couche dont tu parles provient d'une BD postgis.
L'id récupéré via geometry.id ne doit avoir aucun rapport avec l'iq sql que tu souhaites récupérer, mais plutôt avec le fonctionnement interne d'Open Layers.
tu récupérerais ton id comme ceci :
Code:
var monId = feature.data.id;
A tester.
Dis nous si cela t'aide.
Dernière modification par sigdu80 (Tue 10 May 2011 11:08)
Hors ligne
#3 Tue 10 May 2011 11:47
- khalid_sig
- Participant actif
- Date d'inscription: 7 Apr 2011
- Messages: 52
Re: [openlayers] comment avoir id feature selected du vector
Bonjour
merci pour votre réponse, en fait quand j'ai essayé event.feature.fid ça marche. Merci
Hors ligne
#4 Tue 10 May 2011 11:52
- sigdu80
- Participant actif
- Date d'inscription: 2 Sep 2010
- Messages: 112
Re: [openlayers] comment avoir id feature selected du vector
Très bien alors.
Si tu veux récupérer d'autres champs, tu peux utiliser ce feature.data.nom_du_champ_souhaite
Bonne journée.
Hors ligne
#5 Tue 10 May 2011 11:59
- khalid_sig
- Participant actif
- Date d'inscription: 7 Apr 2011
- Messages: 52
Re: [openlayers] comment avoir id feature selected du vector
Merci beaucoup. En fait pour les autres champs j'utilise event.feature.attributes.name_champ.
Par contre pour l'id on me retourne namTable.X, X est l'id. Votre méthode renvoi le X directement ?
Merci
Hors ligne
#6 Tue 10 May 2011 16:23
- sigdu80
- Participant actif
- Date d'inscription: 2 Sep 2010
- Messages: 112
Re: [openlayers] comment avoir id feature selected du vector
feature.attributes semble renvoyer les mêmes données que feature.data
eh oui, il renvoie directement le x donc essaie le déjà.
Firebug pourrait vraiment t'aider dans la suite de tes opérations, je te le recommande vivement, pour combler la documentation plus que succincte d'Open Layers.
Hors ligne
#7 Tue 10 May 2011 16:40
- Magalie.Brunet
- Participant occasionnel
- Lieu: Cannes
- Date d'inscription: 6 Nov 2005
- Messages: 11
Re: [openlayers] comment avoir id feature selected du vector
Bonjour,
Si ton ID est défini comme clé primaire dans ta table PostGIS, tu dois pouvoir récupérer cet élément en faisant
Code:
feature.fid
.
Hors ligne
#8 Tue 10 May 2011 16:53
- khalid_sig
- Participant actif
- Date d'inscription: 7 Apr 2011
- Messages: 52
Re: [openlayers] comment avoir id feature selected du vector
Bonjour
Je vous remercie pour vos réponses, pour l'ID la seule instruction qui fonctionne est event.feature.fid mais elle retoune nomTable.X
Merci
Hors ligne
#9 Tue 10 May 2011 17:07
- Magalie.Brunet
- Participant occasionnel
- Lieu: Cannes
- Date d'inscription: 6 Nov 2005
- Messages: 11
Re: [openlayers] comment avoir id feature selected du vector
Il existe des fonctions en javascript qui permettent de découper une chaîne de caractère pour en extraire une partie. Regarde notamment la fonction split.
Hors ligne
#10 Tue 10 May 2011 17:10
- khalid_sig
- Participant actif
- Date d'inscription: 7 Apr 2011
- Messages: 52
Re: [openlayers] comment avoir id feature selected du vector
merci
Hors ligne
#11 Tue 10 May 2011 17:33
- sigdu80
- Participant actif
- Date d'inscription: 2 Sep 2010
- Messages: 112
Re: [openlayers] comment avoir id feature selected du vector
oui, le split est présent en js, mais tu aurais pu au moins testé ce que je t'avais dit, tu aurais alors résolu ton problème avant 12h.
re-re-vive firebug.
Hors ligne
#12 Tue 10 May 2011 23:10
- khalid_sig
- Participant actif
- Date d'inscription: 7 Apr 2011
- Messages: 52
Re: [openlayers] comment avoir id feature selected du vector
Merci M. sigdu80 mais j'ai vérifié ce que vous m'avez dit, le .data est similaire à attributes mais le ID ne fonctionne pas même avec data.
Je travail avec Firebug depuis quelques mois déjà et c'est grâce à lui que je suis arrivé à ce stade.
Hors ligne
#13 Wed 11 May 2011 10:36
- sigdu80
- Participant actif
- Date d'inscription: 2 Sep 2010
- Messages: 112
Re: [openlayers] comment avoir id feature selected du vector
Bonjour,
cela a toujours fonctionné pour moi.
Les identifiants SQL des tables postgis que j'ai, s'appellent en général, idQuelqueChose, comme idparcelle ou idcommune.
Du coup, je les appelle avec :
Code:
console.log(feature.data.idparcelle); console.log(feature.data.idcommune);
Soit, tes id ne s'appelent pas id mais idQuelqueChose ou alors, il y a quelque chose qui m'échappe, c'est fort possible.
En voyant les xml renvoyé par le WFS, tu en sauras plus.
Très bien si tu utilises Firebug. C'est juste que tu ne me répondais pas, cela donnait l'impression que tu n'écoutais pas ce que je disais, ce qui peut être frustrant pour un membre qui intervient dans le but unique d'aider un autre membre.
Bonne journée.
Hors ligne
#14 Wed 11 May 2011 11:41
- khalid_sig
- Participant actif
- Date d'inscription: 7 Apr 2011
- Messages: 52
Re: [openlayers] comment avoir id feature selected du vector
Bonjour
Je m'excuse pour ce mal entendu alors , effectivement ma clé s'appel code_parcelle
Merci en tout cas ^^
Hors ligne