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.

Monday, September 6, 2010

Free Android Offline Maps

I was researching what to use instead of road and travel maps on paper with my Android phone.

At home Google Maps works just fine. However the data roaming charges immediately rule out this solution when abroad.

If you would like to spend from 40 EUR to 90 EUR you can purchase offline navigation from Sygic: http://www.sygic.com/index.php/en/how-to-buy.html.  The price depends on maps coverage. All the maps they have would run you 488 EUR.

There are probably other offline options but they seem to be bound to some mobile operator and are quite difficult to purchase.

So I looked at the free offerings. The options which are not violating Google's or somebody else's TOS are bound to be based on OpenStreetMap data. OpeStreetMap is a world wiki map founded in 2004. It has gone a long way in terms of coverage, data amount and infrastructure reliability during it's history. Many areas are very thoroughly mapped. The biggest problem for our use case I see is spotty quality of house numbers. However roads, cities, streets and streetnames data should in most cases allow for adequate replacement of travel and road maps on paper.

Another thing which is preventing free solutions to compete with established turn-by-turn voice navigation is a lack of free and quality routing data. This is probably going to be true for some more time to come. That's also why I have little hope for a free solution to compete with established vendors of turn by turn navigations.

Before we look at the free options let's define some terms.

Geocoding - process of translating textual representation of place to it's geographic coordinates. Whenever you use text "search" or something similar geocoding is necessary step to show you the place on map.

Vector map data -  Just a bunch of points, lines and attributes. Advantage: map data of Germany weight around 200-300 MB.

Raster map data - The data is stored in form of final images. Advantage: no rendering needed on the device. Major drawback among others: map data of Germany down to low resolution streetlevel weight around 15 GB.

The options:

AndNav2
 This application is no longer actively developed and the geocoding functionality never worked for me. Another problem with the geocoding service is that it seems to be online-only.  The nice part of this application is an option to preload displayed area to the memory card of the phone. You can move to the area of interest and choose what level of details you need for the area. Then just tap "preload" from map menu and the raster tiles start to flow into your phone. This is the most intuitive way of downloading the region of interest. The lack of geocoding functionality is bad. However I still was able to use this program. Before my trip to Budapest I downloaded the region, and found the addresses I needed using Google Maps at home. Then, inside AndNav2 I created favorites of the places and off I went. This was sufficient not to get lost while moving between trainstation, hotel and some landmarks. Not the most comfortable and flexible solution but the program helped a lot. Basic navigation, zooming and compass functions of the program are functional and nice. Another strange thing with this program is that you can't really get it from any official source. The application is not in Android Market anymore and the official homapage offers only broken links for downloading the apk file. To get the application APK head here: http://andnav2-download.blogspot.com

Pros: Intuitive map download - preload
Cons: non-functional geocoding, not developed any more, broken download links, raster data

OsmAnd
This is a nice application. You can download and install it from Android Market. To use geocoding you have to download indexes through the application menu. There is a small problem for first time user, though. The list of world regions to download has several hundred items which is quite intimidating.  After you fight through the list and download the indexes you need you are only half done with preparations for offline usage.  The biggest drawback of the program for me is the need to download the map tiles with your computer. The toolto do it is called OsmAnd Map Creator. It's a Java (cross-platform) program and is quite intutive.

After these preparations you can start using the map in offline mode. The address search as well as the  map display and navigation are intuitive and work fine. Compass is missing.

Pros: usable offline map and offline geocoding
Cons: need for a external computer program, raster data

MapDroyd
This application is free of charge but it's not opensource. It's actually a teaser for other applications of the  same vendor. It has no geocoding and no favorites, so it's usefulnes as paper map replacement is limited. However it has in-phone user interface to download vector maps of the countries you need. As a basic tool to navigate around a city it might be sufficient. I tried to use it during my trip to Birmingham, but with little success. I couldn't really tell which way to walk. Incomplete rendering, non-intuitive compass mode and incomplete OSM data in this area might all have contributed to this.

Osmdroid
Basic tool to display online OpenStreetMap data. No geocoding, no favorites, no POIs.

Wednesday, May 5, 2010

Categorization of user community feedback

Usually any written feedback from members of user community to the author falls down into on of these categories:
  • general message
  • support request
  • bug report
  • feature request
As I wrote in the previous post we try to make the bug report and feature request choice obvious, so that as many pieces of feedback are categorized properly. Of course there is a problem with this common approach.

Many times the users don't have the knowledge to recognize if they are writing a support request or bug report. This is quite understandable, because it's difficult to recognize for a newbie. The senior members of community are there to help with the categorization and answers. The pity is, that in the most common tools used for communities it's not possible to categorize the pieces after they were submitted. The usual result:

  • many bug reports end up in forum
  • support requests in issue tracker

That's why we plan to change the functionality in nLift so that the all of the written feedback is put into simple text boxes and categorized only if the writer is actually sure that it's bug report, feature request or support request. If not the categorization can be added or changed later.

Other somewhat interconnected problem in software community sites is redundancy. I would like to write my thoughts about this problem in next post.

Thursday, April 22, 2010

nLift project

We created the nLift project for individual developer who needs to start communicating with his users. We tried to keep it simple and integrate simple bug tracker with a forum. If you go through some forums for a software project you probably realize that a large percentage of the posts are actually bug reports and feature requests. We wanted to put the issues category at the same level as discussions so that people spot it and use it, where appropriate.

Other important aspects of our project are email notifications and external authentication. If you are busy online user you probably have many sources of information. I think it's very important to have a tool to aggregate the most important pieces of information into one place. And email inbox can be such a place. If you don't want to miss any action in your project, you can activate "Get email notifications for project" and you'll get all the events into your inbox.

External authentication is another "consolidation" feature. You don't have to create and remember a unique login with us, just use some of the external accounts (Google,Yahoo, Facebook ......) you most likely already have.

So If you are a open source or freeware author, please register and use it. Depending on the user feedback we plan to implement other features. Let us know what other features you would like.

Wednesday, April 21, 2010