Leaflet / OpenLayer Skript - Moon Lighting/Shadow on Earth

slart

Aktives Mitglied
Hallo,

für alle die gerne mit Map-Software wie Leaflet / OpenLayer arbeiten, hier eine Möglichkeit eines Moon Lighting/Shadow on Earth in der Map darzustellen.

Benötigt wird dieses Skript:
und darin der Wert RA (Hrs) - Equatorial. Dieser muss jedoch bei seiner Berechnung wie folgt angepasst werden.

Zeile 103
// form.MoonRA.value = round(EqMoon[1]/15 *RAD2DEG, 4);
form.MoonRA.value = round(((EqMoon[1]/15 *RAD2DEG) * 0.000001), 4);


Am besten diese Berechnung gleich in einer Variable speicher, für das zweite Skript:
RA = round(((EqMoon[1]/15 *RAD2DEG) * 0.000001), 4);

Als nächstes wird dieses Skript benötigt, dass den [lon, lat] Array für Leaflet / OpenLayer berechnet:

Darin sind folgende Änderungen vorzunehmen:

Diese Funktionen können gelöscht werden, sowie die Zeilen, in denen sie verwendet werden.
function julian(date)
function GMST(julianDay)
_sunEclipticPosition: function (julianDay)
_eclipticObliquity: function (julianDay)
_sunEquatorialPosition: function (sunEclLng, eclObliq)


Die Funktion _hourAngle wie folgt anpassen ("+" durch "-" austauschen):

_hourAngle: function (lng, sunPos, gst) {
/* Compute the hour angle of the sun for a longitude on
* Earth. Return the hour angle in degrees. */
var lst = gst
- lng / 15;
return lst * 15 - sunPos.alpha;
},


In der Funktion _compute muss der Wert RA (Hrs) - Equatorial aus dem ersten Skript der Variable "gst" zugeführt werden:

var gst = RA;

Voila, fertig!

Bitte selbst validieren und eventuelle Probleme und Änderungen hier posten.
 
Zurück
Oben