Bonjour à tous,

Avec ce titre peu explicite, je vais essaye de vous décrire mon problème.

A partir de la librairie prototype, je créé une classe nommée "hypermap". Celle-ci contient quelques méthodes :

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
 
var hypermap = Class.create({
  initialize: function() {
     ...
  },
 
addData: function(point){
        var oPoint = null;  
 
        for(var i=0;i<point.length;i++){            
            if (point[i].nodeName=="LONLAT"){                
                coords = point[i].innerHTML.split(";");       
                oPoint = new OpenLayers.Geometry.Point(parseFloat(coords[0]),parseFloat(coords[1]));
 
            }else if (point[i].nodeName=="LOCALISATION"){                
                //oPoint = new OpenLayers.Geometry.Point(587036,6245152);
                place = point[i].innerHTML;
 
                // ICI Recuperation valeur
                yqlgeo.get(place,function(o){
                    lon = o.place.centroid.longitude;
                    lat = o.place.centroid.latitude;                                  
                });     
                oPoint = new OpenLayers.Geometry.Point(lon,lat);
            }    
        }
 
        var feat = new OpenLayers.Feature.Vector(oPoint, null); 
        return feat
    },
 
});
Avec la méthode yqlgeo.get() (yqlgeo) je souhaite récupérer la longitude et la latitude du nom de la ville passée en argument pour ensuite les utiliser dans ma méthode addData.
Mais comme celle-ci est elle même une fonction du coup la portée des variables reste interne à la fonction. Et oPoint = new OpenLayers.Geometry.Point(lon,lat) me retourne une erreur

Je ne sais pas si j'ai bien réussi à expliquer mon problème. N'hésitez pas à me demander plus de détails si cela vous semble mal exprimé.

Merci

Arnaud