OSM Scout Server

Rating: 
5
Your rating: None Average: 5 (13 votes)

OSM Scout Server is a native offline maps provider. This server can be used as a drop-in replacement for online map services providing map tiles, search, and routing. As a result, together with the map client, a full offline solution is available for map search and navigation (car, bicycle, and walking).

The server can be used to provide:

  • map tiles for other applications;
  • search for locations and free text search;
  • search for POIs next to a reference;
  • calculate the route between two or more locations.

To use the server, you have to start it and configure the client to access it. Poor Maps and modRana have support for the server already with no additional configuration needed.

Starting from 0.7.0 release, maps are distributed online and should be downloaded through provided Map Manager interface.

NB! When a new backend is added, such as with the release of 0.9.0 and 0.10.0, please ensure that you have subscription information updated. For that, in Map Manager, click on "Check for updates", decline updates, and unsubscribe/subscribe each territory that you have subscribed. After that, proceed with the downloads. This is not needed if you don't want to use the added backend(s).

For detailed up-to-date description, please see https://github.com/rinigus/osmscout-server/blob/master/README.md

License: LGPL
Source code: https://github.com/rinigus/osmscout-server

User's guide: https://rinigus.github.io/osmscout-server

Official TMO thread: http://talk.maemo.org/showthread.php?t=97823

Screenshots show the running server and, as an example client application, Poor Maps accessing the map tiles and calculated route prior to navigation.

Maps are hosted by Natural Language Processing Centre (https://nlp.fi.muni.cz/en/ , Faculty of Informatics, Masaryk University, Brno, Czech Republic) through modRana (http://modrana.org)
data repository.

Map data from OpenStreetMap, Open Database License 1.0. Maps are converted to a suitable format from downloaded extracts and/or using polygons as provided by Geofabrik GmbH.

Screenshots: 
Application versions: 
AttachmentSizeDate
harbour-osmscout-server-1.0.1-1.i486.rpm10.87 MB15/08/2017 - 23:04
harbour-osmscout-server-1.0.1-1.armv7hl.rpm10.08 MB15/08/2017 - 23:04
harbour-osmscout-server-1.0.2-1.i486.rpm10.87 MB17/08/2017 - 20:42
harbour-osmscout-server-1.0.2-1.armv7hl.rpm10.08 MB17/08/2017 - 20:42
harbour-osmscout-server-1.1.0-1.i486.rpm10.89 MB31/08/2017 - 22:42
harbour-osmscout-server-1.1.0-1.armv7hl.rpm10.1 MB31/08/2017 - 22:42
harbour-osmscout-server-1.1.1-1.i486.rpm10.89 MB09/09/2017 - 22:24
harbour-osmscout-server-1.1.1-1.armv7hl.rpm10.1 MB09/09/2017 - 22:24
Changelog: 

1.1.0, 1.1.1

  • Add automatic start via systemd socket activation
  • Updated translations

1.0.2

  • Normalize tile indexes if requested out of range

1.0.0, 1.0.1

  • Users Guide in Spanish
  • Addition of Finnish translation
  • Updated translations

0.15.0

  • Revert to older libosmscout
  • Updated translations

0.14.1

  • Geocoder-NLP update
  • Updated translations

0.14.0

  • Add support for English as a secondary language
  • Deleting files during cleanup in separate thread
  • Updated translations
  • Bugfixes

0.13.1

  • Updated translations
  • Bugfix in guide search

0.13.0

  • Introduction of profiles
  • Startup wizard
  • Updated translations
  • Other small changes

0.12.0

  • Add support for Mapnik style and daylight switching
  • Speedup Mapnik backend by removing double scaling of the buffer
  • Updated translations

0.11.1

  • Add guide search support for Geocoder-NLP
  • Guide search looks for type or name when using Geocoder-NLP
  • Support for V2 routing protocol by libosmscout backend
  • Updated translations
  • Other smaller changes

0.10.1

  • Updated translations

0.10.0

  • Valhalla added as a routing engine
  • Routing is supported between different territories when using Valhalla
  • Search is performed for all databases when using Geocoder-NLP
  • Server is distributed using modular approach
  • Two server modules introduced: Route and Fonts
  • Update libosmscout version, 20170521
  • Make storage of libosmscout databases optional
  • Mapnik uses Noto fonts by default
  • Other smaller changes

0.9.5, 0.9.6

  • Mapnik database schema changes to reduce size and speedup rendering
  • Mapnik renderer default style adjustments
  • Updated translations

0.9.0

  • Mapnik added as an alternative map rendering backend
  • Enhance Linux command line support for map subscription

0.8.1

  • Updated translations
  • Fix start error on i486

0.8.0

  • Optimization of geocoder-nlp, changes in geocoder data format
  • Updates from libosmscout upstream
  • Addition of command line options
  • Updated translations

0.7.5

  • Expose map updates to GUI
  • Propose to create a storage folder (suggested by @Feathers McGraw)
  • Updated translations

0.7.2

  • New transalations completed: French, Russian
  • New translations started: Polish, Norwegian
  • Fix buffer overflow during fast download and slow writing

0.7.1

  • Updated translations
  • Improved handling of some network errors during download

0.7.0

  • Maps are provided through CDN
  • Adding Map Manager to download and remove maps on the device
  • libosmscout backend changes, including rendering speedup by @Karry
  • Settings grouped by backend and available via Settings dialog
  • Small enhancements

0.6.2

  • German translation
  • Moving translations to Transifex
  • Start and target description are given when available

0.6.1

  • Updated Spanish and Swedish translations

0.6.0

  • Adding libpostal-based geocoder
  • Update to the latest libosmscout version
  • Updated Spanish and Swedish translation

0.5.3

  • Swedish translation

0.5.2

  • Czech translation
  • Minor update in search

0.5.1

  • Updated Spanish translation

0.5.0

  • Added file and directory selection dialog
  • Support for metric and imperial units
  • Built against libosmscout 0.0.git.20161207

0.4.1

  • Updated Spanish translation

0.4.0

  • Changes for better localization support
  • Spanish translation
  • GUI shows number of jobs in queue
  • Support for routing cost limits
  • Bugfixes in routing (libosmscout library)

0.3.0

  • Decoupling number of parallel processing threads and number of requests
  • Adding GPX output for router
  • Adding ability to log events into session log file
  • Using libmicrohttpd as a http server engine
  • Bugfixes in routing
  • Static linking of libosmscout, marisa, and libmicrohttpd
  • Used versions of the libraries: libosmscout (0.0.git.20161110), marisa (0.2.4), libmicrohttpd (0.9.50)

0.2.1

  • Bug fix in routing target description; small changes in route instructions text

0.2.0

  • Support for route calculation
  • Add settings for transport speed properties
  • Add ability to increase area processed for tile drawing
  • Small enhancements and bug fixes

0.1.0

  • Initial release
  • Support for map tiles
  • Support for location search
  • Support for free text search
  • Support for search of POIs next to a reference point

Comments

objectifnul's picture

Is modrana.org down permanently? If so, is there an alternative?

rinigus's picture

Hi, no, its not permanently. However, since it gone down saturday night and its hosted by the research institution, we probably have to wait till monday. At present, there is no fallback server, unfortunately. I could upload to the cloud that I use, but it would probably take about 12 hours due to the partitioning of the datasets. Taking into account that modrana.org will be probably back tomorrow, I presume that its not worth it...

I will look for alternative servers to use as a fallback to make the map distribution more stable.

objectifnul's picture

Thx. By the way, congratulations for this awsome work.

ferlanero's picture

Thumbs up for new release. I'm absolute impressed with how this project is developed!

rinigus's picture

Thank you!

Vilkz's picture

Hello, I want to get the osm.org stylesheet for mapnik. I have tried replacing "/usr/share/harbour-osmscout-server/mapnik/default/day/mapnik.xml" with osm.xml from https://trac.openstreetmap.org/browser/subversion/applications/rendering/mapnik, I then get the error message "Mapnik exception: failed to initialize projection with:[the path to mapnik.xml inside ~/.cache]". I guess this isn't the correct way to do this?

rinigus's picture

Unfortunately, its not that easy. All mapnik styles are attached to some data source. In the case of osm.org, its attached to PostGIS database. I am using SQLite datasource as a backend for my mapnik styles to keep RAM consumption small. So, if you wish to adapt osm.org, you would have to maake a corresponding style as well. See https://github.com/rinigus/mapnik-styles-sqlite for  styles used by OSM Scout Server. If you are faamiliar with how to edit these styles, its not too hard to make one for yourself.

DrYak's picture

Feature request:

- Whole Europe download in the GUI interface (for people with 128GB  uSD-cards), like navit.

BTW: great app, love it ! Big thanks!

rinigus's picture

That's not very simple. One way would be to make a single import, but it would take large amount of time. Alternative is to have "batch" download, but the server doesn't exactly support it yet. Second alternative would be to generate countries_requested.json file and use it for subscription of the maps. This would allow to enter all European countries as the subscribed ones and use OSM Scout Server to download them.

Right now, I don't think I have time for it. If you would like to do that and know how to program in something that readw/writes JSON, you could try to make a hack for yourself :)

DrYak's picture

Second alternative would be to generate countries_requested.json file and use it for subscription of the maps.

{....}

If you would like to do that and know how to program in something that readw/writes JSON, you could try to make a hack for yourself :)

I'm fluent in Perl (in addition to other stuff like C/C++) so cobbling together something like this shouldn't be difficult.

The only thing that bothers me is that currently OSM Scout has only one active map at one time, so this wouldn't allow me to just select "Europe" and be done with it.

rinigus's picture

It has a single active map for libosmscout backend only. For Mapnik, Geocoder-NLP, and Valhalla, all maps are active. This is the default profile and you should be nicely covered.

The selected map on main GUI in the case of default profile (Mapnik, Geocoder-NLP, and Valhalla) is used only by the geocoder for the first preference of the search. Namely, when you search for something you would get hits from that country first (if they are as good as in the other countries).

DrYak's picture

For Mapnik, Geocoder-NLP, and Valhalla, all maps are active.

Then this is definitely interesting for me !

rinigus's picture

That's one of the main reasons why the Default profile enables these backends.

cybershaman's picture

rinigus: thank you for all your great work on this app, it has made my life easier numerous times when abroad.
Is there a technical reason why you opt to having the map server run in foreground (cover) mode only compared to letting it run in background (possibly on SFOS bootup) also?

rinigus's picture

You are welcome! There are few reasons behind such design:

  • Jolla Store does not accept daemons. So, if I want to distribute in the both places, versions would differ and the code will have to be properly #ifdef'd
  • If I make it as a daemon, I would have to communicate changes in settings, maps, and so on. In one application its just a bit easier.

Its possible that I will add daemon mode, but that's not priority yet.

DrYak's picture

I second the request for daemon mode.

rinigus's picture

I added the issue https://github.com/rinigus/osmscout-server/issues/176 . However, note that its lower priority right now. I would like to work on other aspects of the navigation first.

olf's picture

[Daemon or not] For the apps "Situations" and "Find my Jolla" (both in Jolla Store), the solution was to create a separate autostarter for each (both available in Warehouse). Technically, this is not elegant, but that approach works well and avoids conflicting with Jolla's Store guidelines.

Apart from this (i.e. separately), I believe a way to hide the UI on startup of OSM Scout Server would be useful.
Just a spontaneous idea: OSM Scout Server could e.g. generate a notification in the SFOS eventsview when starting (already does that), with which (by tapping on it) its GUI is started (in order to access the GUI, when OSM Scout Server was started without it).

rinigus's picture

@olf, sorry, I forgot to reply to you. I have added your suggestions to github issue to keep all data in the same place. Will look into it when I have finished few other things

olf's picture

Absolutely fine, I have already seen that on github. :)

Thanks for planning to take a look at this; making an automatic start-up without GUI possible would be really nice, and hopefully I managed to point out an easier way to achieve that.

Bramba's picture

Hello rinigus,

thank you very much for your great work and your useful app! :-)

There is one question from my side: If I use Poor Maps or Sailfish Maps in (classic) online-mode, I get the maps displayed in my origin- or in english language (what is great!). However, if I switch on OSM Scout Server and use Poor Maps in offline-mode, I get the map displayed in the language of the country itself. That means, for example in China, I can only see those non-understandable foreign characters instead of city- or streetnames in English language.

When navigating around Asia, it feels very difficult to learn all those foreign characters before switching on the engine... :-)

Is there any option available to select the provided language for foreign countries?

With best regards and thank you!
Bramba

rinigus's picture
ade's picture

Is there a manual download alternative left? The map download keeps on throwing timeouts and the postal part as a separate download keeps on getting killed by the OOM-killer (mem usage gets around 50%). This postal download is "just" 705MB.

rinigus's picture

Hi! The manual downloads are not available anymore (or more specifically, at present). See TMO thread for details. But let's try to figure out what's going on with your installation and see how I can fix it.

Do I understand correctly that the server gets killed while downloading only and not doing anything?

Either its a bug in my code or there is something that I did not anticipate in your setup. One possibility for large RAM usage could be that your download speed exceeds write speed on storage or its processing by bunzip2. Is this possible? I presume that then some internal buffers could get full and get OOM-killer up. It might also initiate some timeout stops since network download is not bringing any bytes in (waiting for writing).

To test whether timeouts are causing some trouble, try to use 0.7.0 version. That version has a more straightforward download implementation. It wouldn't save you against some other issues, but may help here.

Would you mind to tell which hardware do you use it on and where do you write the maps (internal or external storage)?

Yes postal download is big, but you don't have to use it. It "just" allows you to use a new geocoder :).

Please do report back and tell how is it going. You could use TMO/github/or here. I would like to fix this issue and ensure that everything works as it should.

ziellos's picture

I can confirm the described behaviour. After switching to geocoder-nlp, the download of "Adressanalyse Sprachunterstützung" always stops when < 10 MB of data are remaining (message is "Fehler beim Herunterladen [path]/postal/global/language_classifier/language_classifier.dat" - Timeout).

And your assumption about memory usage is correct. If download is faster than unzipping and writing, the buffer fills up to several hundred MBs (which is not a problem on my Aqua Fish). Doing the same on Jolla 1 with limited RAM may cause the process being killed.

But apart from that issue, your app is simply stunning. I don't know any other app in Sailfish-land of comparable complexity which is that easy to setup and use. The combination of Poor Maps and OSMScout Server may easily outperform Here Maps (Android). Thanks a lot for your work!!!

rinigus's picture

This bug has been fixed, as from yesterday's morning. Fix description: https://github.com/rinigus/osmscout-server/issues/89 . I am preparing for a new release and will few hours for translations before packaging and releasing new version later today. Right now the test version with the fixed bug is distributed as explained at http://talk.maemo.org/showpost.php?p=1525204&postcount=131

Thank you very much for your warm words, its great to know that the work is appreciated!

ziellos's picture

The download issue is now solved. Again, many thanks!

rinigus's picture

Welcome!

ade's picture

I will create a github issue then. Nice to see your drive to fix issues.

mase's picture

Can it provide multiple maps (one per country), or only one a time?

Pages