Ho bisogno di fare un po 'di azimuth e calcoli del sorgere della luna. Qualcuno può consigliare una buona libreria di astronomia, preferibilmente in Objective-C?Objective-C Astronomy Library
risposta
Forse il codice dei progetti opensource potrebbe adattarsi a voi? Recentemente su FLOSS-Weekly è stata una discussione su Stellarium.
Disclaimer: Non ho guardato la fonte di Stellarium quindi non ho idea se sia utile e purtroppo è scritto in C/C++.
C'è una vecchia libreria C chiamata Astrolog che probabilmente può fare alcune delle cose che stai chiedendo. Puoi verificarlo qui: http://www.astrolog.org/astrolog.htm
la sua non è in Objective C, ma la libreria incluso nel pacchetto pyephem è abbastanza buona. I file sorgente C sono stati presi dal vecchio programma X Window Xephem con la colla aggiunta per rendere le funzioni disponibili all'interno di Python. Finché non hai bisogno di un'accuratezza molto alta, queste routine probabilmente funzioneranno per te.
vi consiglio PJ Naughter di AA+ library. È basato sul libro Astronomical Algorithms di Meeus. La libreria è abbastanza completa e scritta in C++ (facilmente chiamata da Objective-C). La mia app iOS Lúan utilizza questa libreria.
Ho scaricato la libreria AA +, ma per favore fatemi sapere come aggiungere file C++ al progetto XCode iOS? Ho provato ma errori nella parola chiave ** class **! – AVEbrahimi
Quando si integra AA +, rimuovere i test in quanto contengono una funzione principale che entrerà in conflitto con i principali progetti. rinominare i file obj-c che devono fare riferimento al codice C++ per terminare in .mm anziché in .m. Così facendo metterà il compilatore in modalità obiettivo-C++ per quel file. –
Non riesci a trovare il sole e la luna sorgere e impostare è giusto? –
In cima alla risposta di Andrew Hammond, utilizzo Xcode per scaricare l'AA. Quindi rimuovo tutti i file di test (AATest.cpp AATest.sin AATest.vcproj) e con un avviso di Xcode di "Precisione intero perdita di conversione implicita 'lunga' a 'int'" nell'ultima riga su nYear/100
CAAEasterDetails CAAEaster::Calculate(long nYear, bool GregorianCalendar)
{
CAAEasterDetails details;
if (GregorianCalendar)
{
int a = nYear % 19;
int b = nYear/100;
Il programma viene compilato correttamente. Compilare solo se il programma è oggettivo c ma non se è basato su Swift. Hai un problema con la macro pre-processore AAPLUS_EXT_CLASS.
Per coloro che sono ancora interessati al 2016, ho creato un wrapper Objective-C (++) e Swift attorno alla libreria AA + di PJ Naughter. Essa si basa sul libro Astronomical Algorithms di Jean Meeus ed è open-source su GitHub:
per Mac o iPhoneOS? – kennytm