"Marble is a generic geographical map widget and framework that is meant to be used by KDE4 applications. It is also distributed as a standalone application in KDE4."
Two recent developments make the use of Marble on mobile devices reasonable right today: The OpenStreetMap (http://openstreetmap.org) data gets integrated into Marble in the moment and Marble got ported to Qtopia and WinCE only weeks ago. Besides the obvious use to have a globe in your pocket (Marble pocket globe) one could e.g. fix and correct the maps of OpenStreetMap while looking at them on an UMPC (Ultra Mobile PC).
This requires some improvements in the Marble implementation - the power consumption (e.g. by harddisk I/O operations) has to be cut down to save battery life. The calculations and network accesses have to be optimized as well. This should be achieved with better and more intense caching.
Additionally UMPCs normally use a stylus and on-screen keyboard as their input devices. That means that Marble needs to be adjusted to those devices. As there are different operating systems for these devices too, we should try to support them as well.
The third part will add some new features which partly have to be aligned with other Summer of Code projects. They can be achieved even if the other projects are not fulfilled.
My idea is to provide different forms of annotations which will be based on the Marble Layer Management. People will definitely need paths (this might have to be changed for the routing plugin later), text annotations and probably free hand drawings. These Annotations need to get exported and imported too. The best format for that is probably a KML like format which Marble already supports.
Methodology:
Before starting to code, I will make a plan which will directly start the documentation.
This should take 25% of the time. After having a fixed plan this should be implemented in the next 50% of the time. At the end there should be some time for evaluation, testing and documentation. As this is more a general methodology it should be applied to each of the sub-projects that are needed.
Road map:
I expect to work at least 20 hours (~3 hours per day) for this project. This might get more depending on my university work.
week
tasks
1
Set up development environment for UMPC and get familiar with the device.
2
define needed changes to use Marble with stylus and on-screen keyboard - implement them.
3
design and implement the annotation layer plugin for use with the Marble Layer Management
4
design the object representation on screen - this should get similar to the current city info feature
5
evaluation and testing week - check that:
the plugin can show the annotations and integrates fully into Marble
Make sure the annotations are usable on all reachable platforms
6
complete the annotation layer plugin
7
buffer week
8
start Marble improvements, search for optimizations
9
<probably not usable for summer of code - university>
10
more optimizations
11
make overall testing
12
final fixes and presentation at aKademy
Success Criteria:
Marble should run as fast as possible on UMPCs with the constraint of low power consumption - due to better caching techniques and other improvements.
The above mentioned forms of Annotations should be possible: Paths, Texts and Drawings. They should be exportable and importable as KML like files.
The GUI should be adjusted to the use with stylus and on-screen keyboard.
About Me:
I am 26 years old and studying physics at the University of Leipzig.
I will start my diploma thesis in autumn about theoretical physics using on Markov-Chain-Monte-Carlo simulations.
I started programming C/C++ when I was 14 years old but kept it as a small personal hobby for a longer time. After having a look at multiple free software projects I joined KDE last summer working on the windows port of KDE. Within Google Summer of Code I want to switch to development beyond bug-fixing and build-system work.