Ciao a tutti!
Sto programmando un piccolo tool di visualizzazione di dati di ghiacciai su google map.
I dati per ogni ghiacciaio sono contenuti in alcuni files xml. Usando jQuery faccio il parsing dei files e salvo i valori in un oggetto (json, glacier[shortName]{...}) in modo da potere in seguito utilizzare i valori in tutto lo script. Il problema è che gli oggetti risultano essere definiti solo nella funzione di parsing e non all'esterno. Evidentemente non basta dichiarare un oggetto con var glacier = {};
Come posso risolvere il problema?
Grazie in anticipo!
codice:var map, mapOptions = { zoom: 9, center: new google.maps.LatLng(46.509736, 8.305664), mapTypeId: google.maps.MapTypeId.SATELLITE, streetViewControl: false, }; var glacier = {}; var xmlGlacier= new Array(); xmlGlacier[0]= "brunni"; xmlGlacier[1]= "damma"; xmlGlacier[2]= "griess"; xmlGlacier[3]= "huefi"; xmlGlacier[4]= "kehlen"; xmlGlacier[5]= "rotfirn"; xmlGlacier[6]= "sanktanna"; xmlGlacier[7]= "tiefen"; xmlGlacier[8]= "wallenbur"; function parseXml(xml){ name = $(xml).find("Name").text(); shortName = $(xml).find("Glacier").attr("short"); lat = parseFloat($(xml).find("Lat").text()); lon = parseFloat($(xml).find("Lon").text()); lengths = new Array(); length1973 = parseFloat(($(xml).find("Length").text())*1000); firstLength = length1973 - parseFloat($(xml).find("Observation[year=1973] CumulativeLengthChange").text()); $(xml).find("Observation").each( function(){ if($(this).attr("year")>="1960"){lengths.push(parseFloat(firstLength + parseFloat($(this).find("CumulativeLengthChange").text())));} }); glacier[shortName] = { name: name, shortName: shortName, center: new google.maps.LatLng(lat, lon), lengths: lengths, } } $(document).ready(function(){ for(var i = 0; i < xmlGlacier.length; i++){ $.ajax({ type: "GET", url: "glaciers_data/" + xmlGlacier[i]+".xml", dataType: "xml", success: parseXml }); } map = new google.maps.Map(document.getElementById("map"), mapOptions); });

Rispondi quotando