Accéder à la valeur d'une fonction à l'intérieur d'une autre fonction
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:
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