After more than a year of development and 38 releases, I would like to give an update on the status of OSM Scout Server. The server is targeting mobile Linux devices as a drop-in replacement for online map services providing map tiles, search, and routing. As a result, an offline operation is possible if the device has a server and map client programs installed and running. Since its tailored towards mobile devices, the server has been successfully used on devices with as little as 1-2 GB of RAM.
At present, the server can be used to provide:
- vector or raster tiles for other applications;
- search for locations and free text search;
- search for POIs next to a reference area;
- calculating routes between given sequence of points.
User's guide is available at https://rinigus.github.io/osmscout-server that describes how to set it up for Sailfish OS.
While started as a wrapper to libosmscout, it now incorporates several other backends:
- map rendering via Mapnik (https://github.com/mapnik/mapnik);
- hosting of Mapbox GL vector tiles (https://github.com/mapbox/awesome-vector-tiles);
- search via Geocoder-NLP (https://github.com/rinigus/geocoder-nlp) which is based on libpostal (https://github.com/openvenues/libpostal);
- routing instructions via Valhalla (https://github.com/valhalla/valhalla);
- map rendering, search, and routing via libosmscout (http://libosmscout.sourceforge.net/).
To use the server, you have to start it and configure the client to access it. With the help of the users, we have setup the distribution of maps in relevant formats that can be downloaded to your device. So, usage is rather simple: through server-provided GUI, users can select areas they are interested in, download, update, or remove them as needed. During the normal usage, server GUI is invisible and the server is started automatically via systemd-provided socket activation when user's map client tries to access it. As a result, you have ability to use offline the map clients that are developed for online operation. It allows also to use the same offline maps in multiple applications, a strategy that has been successfully implemented by several applications in Sailfish OS.
Most, if not all users, are coming from Sailfish OS, but it should be relatively easy to adapt the server to any Linux. Already now it can be used from the command line, although the interface could use some adaptations to simplify management of the maps. However, taking into account that the server if written in Qt (C++ and QML), writing OS-specific GUI would probably require relatively small amount of time if done through QML.