[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orekit Developers] [SOCIS] New snapshot



Hi,

I've just released a new snapshot for Orekit on the forge. You can download it here :

New changes since the since snapshot : https://www.orekit.org/forge/attachments/download/64/orekit-20111031.apk

* Add a 2D plot of the orbit in the Event part
* A bit more optimized for Android 3.x (using the holographic theme and the native actionbar when Honeycomb and later is detected)
* The "black boxes" issue is now fixed on Android 3.x
* The semaphore which locks Orekit calls has been removed and has been replaced by a Wakelock which ensures that your device won't go to sleep and pauses the computation if the screen goes off.
* New OrbitView class which can show orbits in a tabular way for nicer compute results display.
* Now TLEExampleSource fetchs sample data from Celestrak.com
* The next button on Vector3D fields in the "Frame conversion" part should be fixed now (except on Android 3.x and I just figured it out)
* It doesn't automatically click on "Ok" when you select a favorite anymore, allowing you to change a the details of the orbit before applying it.

Just a little word about the 2D plot : I was trying to finish it for the SOCIS deadline so it can be a little bit unefficient or not properly designed, but it works and I didn't feel it to be particularly slow with 2 to 3 days propagation. It slows down for 1 month propagation but you can still scroll with a 1 - 2 sec lag on a Nexus One.

If you want to make an EventDetector support plotting, you just need to make the EventDetector implement the GraphableEvent interface, which will make you implement two methods : getGraphStyle() and getGraphTitle(). getGraphStyle() will return a Paint object which correspond to the event state color, and getGraphTitle() is the title so you can select the graph to display if you have multiple events.

Then, the class "Grapher" will implement OrekitFixedStepHandler and will route the handleStep events to multiple instances of Grapher.GraphContext. Grapher.GraphContext which will store the points (Grapher.GraphPoint to store the paint along the position) and has a render(Canvas c) method which plots the graph on the selected canvas (with the background map layer)

By the way, I don't know if it's normal but I think I failed using the Mercator projection. When I use a Visibility detector for a station in Paris, I get a circle which is not centered in Paris at all, but more in Russia. The y coordinate seems plausible. (The map layer is using Mercator projection)

Also, I just remember I forgot to add a detection when the object has done a 360° rotation, so you have weird horizontal lines because it will still joins the points.

About Android 3.x : I went to the Android Developer Days last Friday about programming for tablets and Google & Samsung gave each one of us a Galaxy Tab 10.1 so beside behing pretty happy, I could finally try to optimize the application for tablets. Yes I got it at the exact last day of the SOCIS :) There is still a fallback mode for Android 2.x which renders the same as before, but on Android 3.x it can still render weirdly. Using the native Actionbar was mandatory because the home-made one rendered badly with the Holographic theme (the native theme for Android 2.x). Also I currently don't understand why the edit boxes are still boxes and not a nice line like on every app adapter for Android 3.x. I can still revert these changes if you want.

Have a nice day :)

Alexis

Attachment: SC20111031-105027.jpg
Description: JPEG image