Skip to content

Latest commit

 

History

History
135 lines (94 loc) · 3.68 KB

README.md

File metadata and controls

135 lines (94 loc) · 3.68 KB

Swiss Ephemeris binding for react-native

Getting started

$ npm install react-native-swisseph --save

Mostly automatic installation

  1. With autolinking (react-native 0.60+)

    cd ios && pod install

  2. Pre react-native 0.60

    $ react-native link react-native-swisseph

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-swisseph and add RNSwisseph.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNSwisseph.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactlibrary.RNSwissephPackage; to the imports at the top of the file
  • Add new RNSwissephPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-swisseph'
    project(':react-native-swisseph').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-swisseph/android')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-swisseph')
    

Configure (Pre react-native 0.60)

  1. Open your project in xcode
  2. Right click your project root and select "Add Files to ..."
  3. Select "../node_modules/react-native-swisseph/android/src/main/assets" folder and click "OK"

Usage

Example:

    import swisseph from 'react-native-swisseph';

    //Getting julian day
    async julday() {
        let task1 = async () => swisseph.swe_julday(2012, 1, 1, 0, swisseph.SE_GREG_CAL).then(
            (result) => {
                return result;
            }
        );
        let task2 = async () => swisseph.swe_julday(1987, 2, 4, 10, swisseph.SE_GREG_CAL).then(
            (result) => {
                return result;
            }
        );
        let task3 = async () => swisseph.swe_julday(2003, 6, 1, 23, swisseph.SE_GREG_CAL).then(
            (result) => {

                return result;
            }
        );

        let [result1, result2, result3] = await Promise.all([
            task1(), task2(), task3()
        ]);
        let message = [
            ...this.state.message,
            "julday():" +JSON.stringify({
                'julday1' : result1,
                'julday2' : result2,
                'julday3' : result3
            })

        ];


        this.setState({
            message: message
        });

    }


    // Sun position
    async swe_calc_ut() {
        let flag = swisseph.SEFLG_SPEED | swisseph.SEFLG_MOSEPH;

        swisseph.swe_julday(2012, 1, 1, 0, swisseph.SE_GREG_CAL).then(
            (jul_ut) => {
                swisseph.swe_calc_ut (jul_ut, swisseph.SE_SUN, flag).then(
                    (result) => {
                        this.setState({
                            message: [
                                ...this.state.message,
                                "swe_calc_ut():" + JSON.stringify(result)
                            ]
                        });
                    }
                )


            }
        );

    }

Documentation

See Programming interface to the Swiss Ephemeris for more details.

References

License

The license for this project is the same as original Swiss Ephemeris.