Friday, October 29, 2010

Free Android Offline Maps - the best option

All four of my previous posts consider the use case of replacing paper map with an electronic one, without dependance on data connection.
The best option for this use case is OsmAnd.
 OsmAnd
It's a native Android Java application, with at least one very active developer. The license is LGPL. It has very good address/place search capabilities and UI. It has a lot of different functions which can be used while online and I didn't explore them.

However the vector rendering functionality make this program the most promising out of the free android map applications for offline usage out there.

At this stage it's quite difficult to get/prepare your dataset and also there are problems when using bigger datasets. The problems are being worked out and once that happens it's going to be THE application to use when on travels.

Monday, October 25, 2010

Free Android Offline Maps - the vector choice II

Navit
Navit is a traditional car navigation software written in C/C++. Android's NDK allows reuse of C and C++ code, so it was possible to port Navit to Android. But it certainly doesn't have a feel of Android application. For example it makes no use of android hardware keys (search, back) or pinch to zoom.  Also it didn't have a "walking" mode, which was annoying for me because that was the use case I actually need.
There were two bugs making my life hard every time I started the program:
1. I used it many times in one city but to find a particular street I had to input the country and city over and over again. It might be possible to put the defaults into a config file. However the config file setting didn't work for me.
2. Another thing which might be possible to set up through config file is the first position on the map when you start the program. Whatever is the stock default I didn't have map data for that area so the program started into a blank map every time. Also Android has a location service with lower precision but much quicker initiation. You don't have to wait to for a GPS fix to get approximate position. Navit didn't take this into account and I had to stare at a blank map for a couple of minutes when the sky was obscured and the GPS fix was hard to get.

Big advantage of Navit is that there is a great and reliable service (http://maps.navit-project.org/download/)  where you can download ready-to-use data files for the area of your interest. It's certainly the best map data service out of all the programs I tried.

I don't know about Navit enough to predict how well will it develop in the future. Unfortunately for this project there is great and fast moving competing project which I discovered recently: OsmAnd.

So the next post is going to cover my (positive) experience with OsmAnd.

Friday, October 8, 2010

Free Android Offline Maps - the vector choice I

In the previous posts I missed the two vector map choices you have. Fundamentally vector representation of the map should be the way to go, if you need to preload larger area into your phone.

Choice number 1: Osm-android. This is an early stage project. To use it you have to check out source code of the converter application and build it. The converter is quite rough (no GUI). It can only process small countries and I had to fix a couple of issues with it before successfully getting a binary equivalent of an openstreetmap xml file. Visual quality of the map rendered on the phone is poor. But I once tried it on a trip to a semi-familiar neighborhood and it helped me to find my way after missing a turn! Still, this option is probably not the way to go for the most of the people. The biggest advantage of this application is, that it's the only java - android code I found tackling the problem of vector map rendering on an Android device.

Lately I discovered a much more feasible option called Navit. I'll cover Navit in the next blog post.