2016-04-27 7 views
2

Ich versuche herauszufinden, wie die beiden Variablen arect und declin die target Eigenschaft innerhalb der aladin Instanz zu definieren. Die Eigenschaft target benötigt die zwei numerischen Werte, die durch ein "," getrennt sind.Wie setze ich eine Instanzeigenschaft mit zwei numerischen Variablen

Wie stelle ich sicher, dass das Ziel die Koordinaten lesen kann, die ich in den beiden Variablen gespeichert habe.

Die Ajax-Anfrage wird alle 10 Sekunden durchgeführt und speichert jedes Mal verschiedene Variablen.

var arect = {}; 
var declin = {}; 
$.ajax({ 
    url: "getstatus2.php", 
    async: false, 
    dataType: 'json', 
    success: function(data) { 
     arect = data.ar; 
     declin = data.dec; 
     console.log(arect); 
     console.log(declin); 
    } 
}); 

var aladin = A.aladin('#aladin-lite-div1', { 
    survey: "P/allWISE/color", 
    fov:1, 
    cooFrame:"ICRS", 
    showReticle:"true", 
    showFrame:"true", 
    showLayersControl:"false", 
    showZoomControl:"true", 
    target:'arect,declin', 
}); 
+0

Ich habe Ihre Frage nicht bekommen, aber was passiert, wenn eine Anfrage länger als 10 Sekunden dauert? Vielleicht sollten Sie eine logische Uhr hinzufügen. – m02ph3u5

Antwort

1

Sie könnten Ihr Ziel als solche eingestellt:

target: arect + ',' + declin 

Allerdings müssen Sie dies als Ergebnis Ihres Ajax-Aufruf setzen. Entweder verschieben Sie diesen ganzen Block beginnend mit var aladin = A.aladin ... in den success Block. Oder Sie erstellen eine Funktion, um Ihre Aladin-Variable festzulegen.

Zum Beispiel:

function SetAladin(arect, declin) { 
var aladin = A.aladin('#aladin-lite-div1', { 
    survey: "P/allWISE/color", 
    fov:1, 
    cooFrame:"ICRS", 
    showReticle:"true", 
    showFrame:"true", 
    showLayersControl:"false", 
    showZoomControl:"true", 
    target: arect + ',' + declin, 
    }); 
} 

und dann in Ihrem success Block, rufen Sie einfach die Funktion.

+0

Das ist perfekt! Danke, es funktioniert! – hologhost

Verwandte Themen