Put the World in Your Pocket with Marble
Of course, other navigation solutions exist for mobile devices. Some, such as Navit, Mappero, ModRana and MoNav, even are free software. However, Marble has a few special features. Marble makes use of a range of existing algorithms and Web services, and as Dennis explains, the approach Marble takes is to “query the available ones in parallel and choose the best result”. However, there is more to it than just fetching results: “many of the services can only calculate routes between two points, while Marble supports an arbitrary number of via points—therefore, we need to split up requests and combine the results, and all of that is transparent to the user”. Marble also adds enhancements to the step-by-step driving instructions: “We generate them ourselves, as that allows us to translate them in all languages supported by KDE software—no other project has that huge a number of supported languages.”
Dennis explains that there are other advantages to using a selection of alternative back ends: “Since we query multiple routing back ends in parallel, Marble ranks the results, eliminates duplicates and then shows the remaining routes on the map. The best is active, but you can easily switch to one of the alternative routes.”
Marble for smartphones also gains from its close relationship to its desktop cousin. You easily can explore and plan your journey with Marble on your home computer with a big screen and fast Internet connection and then transfer it to your mobile phone. Simply export a file from the computer to the phone and then open it in the mobile version of Marble. In fact, you can import route data from any application supporting the standard KML format. The mobile version of Marble does, however, have plenty of differences from the desktop version. For a start, the mobile version does not depend on the KDE platform, so none of the KDE libraries are needed for installation. This makes the application download only a few megabytes, but it does mean that the KNewStuff interface—with which you may already be familiar if you use KDE software on the desktop—is not available to install add-ons, such as new maps.
Making the software simple to use is one of the developers' main goals. Much of the technology needed has developed independently of Marble, but Marble draws it all together and presents it to the user via a consistent and easy-to-use interface. For Dennis, the major challenge has been “integrating the different back ends and coping with their strengths and limitations, ideally without the user knowing”. This is the key: “hiding power behind a simple user interface”.
In the best traditions of free software, Marble makes use of a whole load of existing routing solutions rather than re-implementing everything itself.
Addresses and current locations are located on the globe using a combination of the Nominatim Web service (for OpenStreetMap address search), GeoIP Web services to link IP addresses to locations and a local database shipped with Marble. Nominatim also is used to convert positions to addresses, as is Gosmore, which is an optional runtime dependency.
Marble works out routes by taking advantage of the OpenRouteService, YOURS Web service, Routino and the aforementioned Gosmore and Monav as optional runtime dependencies.
Of course, free software also is about contributing things back, and Dennis is excited about Marble's routing instructions implementation becoming useful for other projects. “It is used by the YOURS implementation on OpenStreetMap, which has good chances to be included on the main OpenStreetMap site at some point. That would mean that some part of Marble, and the efforts of the KDE translators, would be used by the OpenStreetMap project itself—a nice way for KDE to contribute.”
Plenty more is coming in the future. Being able to plan a route and following it is useful, but what about being able to take your phone out when you run or cycle and have Marble record your route so you can upload it to your home computer and see where and how far you went? Dennis thinks it can be done: “Technically, we're just 20 lines of code away from that. It's mainly missing currently because we didn't find a nice place in the user interface yet.”
Other future enhancements include integration of off-line address search, greater optimization for different transport types—for example, improving the selection of different routes for cycling and driving or choosing the fastest versus the shortest route. Voice instructions, one of the major features missing from Marble on a smartphone when compared to a dedicated satellite navigation system, also will be added using text-to-speech technology.
Torsten also is excited about the future use of OpenGL, recently demonstrated by Marble developer Bernhard Beschow. Adding OpenGL support will make it possible to move rendering of the maps from pure software to make better use of the graphics processors found in modern smartphones. Torsten believes that “OpenGL is important for the mobile use case in terms of CPU and battery usage—we hope that OpenGL support will start to appear in summer 2011.”
Implementing all these features, of course, will take a lot of hard work, and not just from developers: “We need more people to help us: with promotion, with documentation and, of course, through coding.” As Marble depends heavily on free data sources, such as those integrated in the OpenStreetMap Project, it also benefits from contributions to the stock of free geographical data by governments, individuals and companies. In particular, Torsten would like to see more aerial imagery released under free licenses. Dennis has similar views: “Any data that is commonly tagged in OpenStreetMap will be useful if it can be imported automatically in some way. Satellite maps would be awesome to have as well in more detail.”
|Designing Electronics with Linux||May 22, 2013|
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
- Designing Electronics with Linux
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Dynamic DNS—an Object Lesson in Problem Solving
- Using Salt Stack and Vagrant for Drupal Development
- New Products
- Build a Skype Server for Your Home Phone System
- Validate an E-Mail Address with PHP, the Right Way
- A Topic for Discussion - Open Source Feature-Richness?
- Why Python?
- Tech Tip: Really Simple HTTP Server with Python
1 hour 44 min ago
- Reply to comment | Linux Journal
1 hour 52 min ago
- Understanding the Linux Kernel
4 hours 7 min ago
6 hours 37 min ago
- Kernel Problem
16 hours 39 min ago
- BASH script to log IPs on public web server
21 hours 6 min ago
1 day 42 min ago
- Reply to comment | Linux Journal
1 day 1 hour ago
- All the articles you talked
1 day 3 hours ago
- All the articles you talked
1 day 3 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?