Giter Site home page Giter Site logo

busvis's People

Contributors

feeras avatar josuakrause avatar leowoerteler avatar marcspicker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

jjdblast

busvis's Issues

When already walking, walking again should not be allowed

The current walking restriction can be tricked by walking again from another bus station.
At 0:00h from 'Spanierstraße' to 'Klinikum Konstanz' and a maximal walking time of 10min
the routing algorithm returns the following path:

Spanierstraße -> Zähringerplatz (walking, 10min)
Zähringerplatz -> Klinikum Konstanz (walking, 9min)

which contradicts the restriction to 10min walking

Live View Broken

The now view can't be chosen any more, it runs into an infinite loop:

at infovis.ctrl.Controller.setTime(Controller.java:282)
at infovis.ctrl.Controller.setFastForwardMode(Controller.java:467)
at infovis.ctrl.Controller.setTime(Controller.java:282)
at infovis.ctrl.Controller.setFastForwardMode(Controller.java:467)
at infovis.ctrl.Controller.setTime(Controller.java:282)
at infovis.ctrl.Controller.setFastForwardMode(Controller.java:467)

Seems to to introduced by #52.

More prominent clock

The clock should be more prominent especially in the case of fast forwarding (sliders are greyed-out and the "label-clock" is very small).

Avoid Node Drift

After the focus changed several times, the nodes drift away from their default position. This leads to central stations like Sternenplatz ending up on the edge of the graph.

Clean up code

Cleaning up code and renaming / refactoring some classes. May brake changes of others, so make sure you commit your current changes now and work with the after milestone version tomorrow.

also:
fixes #25

Better GUI components

The GUI elements that are used for choosing the time are not very intuitive. Changing them to more "common" elements.

Better Routing Algorithm

The routing algorithm is broken and should be fixed. From #14:

Because only one "shortest" path to each station is considered, quicker routes that avoid line changes aren't always taken:

   , 00:00 ---1--- 00:01.
  /                      \
(A) 00:01 ---2---> 00:02 (B) 00:02 ---2---> 00:03 (C)
                           \                      /
                            ` 00:03 ---3--- 00:04´

The optimal route (when change time is greater than zero) would be Line 2, but because (B) is reached quicker by Line 1, it is taken instead.

Timer

Timer does not terminate correctly. May lead to the application not terminating correctly either.

Controller

A controller class to control the different visualizations.

Remove legacy code

Remove all unused classes (like EmbedderTest, SpringEmbedder or Test) or provide a way to use its functionality.

GUI

Make a feasible gui with sliders etc

Fast-Forward Animation

It should be possible to increase the speed of the current real-time mode, e.g. to one minute per second.

Data description

Describe how csv files should contain the necessary data for bus plans to give the possibility to add alternatives to the Konstanz bus system.

Loops in routing

On full BusStationManager::maxTimeHours(24) and with the csv data there are loops in the routes found by BusStation::routeTo

Line not hightlighted

Exception:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: line not highlighted
    at infovis.data.EdgeMatrix$UndirectedEdge.getNumberOfHighlighted(EdgeMatrix.java:109)
    at infovis.busvis.BusvisDrawer.drawSecondarySelected(BusvisDrawer.java:231)
    at infovis.layout.AbstractLayouter.draw(AbstractLayouter.java:130)
    at infovis.gui.Canvas.paintComponent(Canvas.java:287)
    at javax.swing.JComponent.paint(JComponent.java:1029)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
    at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1491)
    at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1422)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1225)
    at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:786)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
    at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:694)
    at javax.swing.RepaintManager.access$700(RepaintManager.java:41)
    at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1636)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
    at java.awt.EventQueue.access$000(EventQueue.java:84)
    at java.awt.EventQueue$1.run(EventQueue.java:607)
    at java.awt.EventQueue$1.run(EventQueue.java:605)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Show more labels when zooming in

When the zooming is greater than one begin to show more labels. (BusvisDrawer#drawLabel(Graphics2D, Context, LayoutNode, boolean, String) )

Avoid clutter from nodes

Adjust the angle of a node towards the reference such that clutter from the nodes is reduced.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.