Libosmscout Status Update Mai 2015

Welcome back!

Sorry for the long silence. I did not have that much time for libosmscout over the last two years and while I was still improving the code, overall lack of time resulted in a lack of communication outside the mailing list. The project was and is still alive – it was just that I did not have enough time to tell everybody :-/

Any news?

So what’s new, what has happened in the last 2-3 years?

  • libosmcout got a number of internal major improvements. There are too many of them to mention them all, but the most important ones are:
    • The coastline detection and parsing code has been finished. Coastlines are now well rendered 🙂
    • libosmcout now uses Qt5 for the GUI demo application
    • The internal data format for storing object attributes has been rewritten make use of configurable features. This way one can inject new attribute parses and data sets into the database without changing the code. Just register your new feature and make use of it in the *.ost file and your code.
    • The style sheet language was extended, new keywords allow more flexible filtering. New attributes allow better, nicer rendering. We are now able to describe simple symbols in the style sheet itself. Overlay symbols are possible (oneway). You can now reference multiple label-like attributes directly from the style sheet (house numbers and house name at the same time!).
    • There have been multiple rounds of optimisation of database size. While holding more information the database is (much) smaller than before.
    • Using pango, Qt and Mac OS/iOS font engines allows to render international labels
    • The location index was improved multiple times and we now have a rather good and fast “search while you type” engine.
    • The routing engine was improved regarding performance, database size and route description quality
    • The top level API was restructured and now has *Service classes with task-specific contracts, better hiding low level APIs
    • We allow merging of input files (with some constraints) which allows use to inject SRTM-base *.pbf files into the original data, resulting in elevation lines drawn.
    • libosmscout now is c++11 only.
    • Qt and MacOS/iOS ports are stable. There were some successful tests to use Qt under Android, too.
    • Some initial work has been done, to make libosmscout usable from Java using JNI (using WIG).
    • More tools and demos, showing major features and helping debugging libosmscout.
  • I attended the State of the Map Europe last year. This was a very thrilling experience. Most terrific for me was, that I was allowed to held a speech about libosmscout. You can see the video here: Thanks for the organizer fo the State of the Map Europe for this wonderful and well-planed and executed event!

The future!

My internal TODO file is still very long and there are many areas where improvement is planed. These are the most interesting entries:

  • Create Java (and other language) stubs using SWIG (any SWIG experts out there which can help me?)
  • Improve the caching for map rendering resulting into faster loading and rendering
  • Improve the style sheet and rendering. Here somebody with aesthetic talent is wanted.
  • Improve the database
    • Reduce size
    • Improve the data model, allowing for example attributes for nodes on way or area border.
  • Improve the routing description quality
  • The demo client needs to better advertise the functionality of libosmscout. This means better support for touch handling, managing favourites, access to the GPS (if available), live routing and other stuff.

Bildschirmfoto von »2015-05-17 19-57-27«I will attend the OSM Sommercamp 2015 (see in Essen, Germany. I do not plan to make an official workshop, but if anybody is interested, please contact me beforehand or during the summer camp if you have any questions.


8 Responses to “Libosmscout Status Update Mai 2015”

  1. Jean Says:

    Hi! I am glad that the blog is active again!
    I have tried to run the bash script found here:
    to install try TravelJinni as well as to try to import an .osm data.

    However, TravelJinni does not exist on the git hub and neither could I find any .ost .oss data from Import/.
    Is there something that I missed?

    It would be very helpful if the library works to avoid starting from scratch with the rendering.

    Thank you!

  2. framstag Says:

    We have removed TravelJinni because it made use of my own GUI library that was more and more difficult to support. We now switched to use QT5 for the demo application. The demo application is in the OSMScout2 sub directory and requires a QT5 installation. Just remove TravelJinni from the script and replace it with OSMScout2 (it uses qmake for building). An example command line to start it would be:
    debug/OSMScout ../maps/nordrhein-westfalen ../stylesheets/standard.oss

    The *.oss and *.ost files have been moved to the stylesheets sub directory.

    Implementing a renderer, a router and a OSM data preprocessor is a burden. libosmscout exists to avoid that burden 🙂

    If you have more questions, please subscribe the list and ask your questions there.

  3. Anton Says:

    Hello Tim,
    i worked recently with libosmscout and ported portions of code to work with vs2013.
    Are patches acceptable?

  4. framstag Says:

    Patches are of course welcome. For code patches minimal restrictions are: Should be documented, should follow my formatting and naming conventions.

    I’m not currently developing under Windows but have the feeling, that the Microsoft support is suboptimal. If you have code/projects files that improve the situation and at least allow others to add support for older Version, too, these patches are more then welcome. It would be nice if the code patches follow the configure approach by adding feature toggles at a central place that in turn trigger code variants or macros. In the simplest version you just provide a specific copy of the config.h file (together with some code changes).

    • Anton Says:

      OK, i’ll collect my changes to proceed with pull request.
      Could you please explain how Style Editor should work? I’ve built it successfully both on Linux and Windows, but File->Open does nothing. Note, if file wasn’t loaded, right click causes crash in TypeFeature::getType(). I think its because of there is no file opened.

      Thanks in advance

  5. framstag Says:

    StyelEditor is an additional application written by Vladimir Vyskocil (he is on the mailing list) to combine the map drawing code of the QT5 OSMScout2 demo with an simple text editor for editing a style sheet. Its goal is, to make simple modifications on the style sheet immediately visible. Since there were a number of modifications in the original demo applications not fully applied to the StyleEditor demo, there a some smaller glitches (like zooming), it is also not finished in that not all menus work and the editor would need some enhancements to make it more usable. IT is more of a show case of what could be and a victim of lacking man power.

    I called it similar to the OSMScout2 demo (exchange “nordrhein-westfalen” with your map of choice):
    debug/StyleEditor ../maps/nordrhein-westfalen ../stylesheets/standard.oss

    You can then for example change the line

    COLOR motorwayColor = #4440ec; // dark blue
    COLOR motorwayColor = #ff0000; // dark blue

    and press “Render” to see how motor way color changes.

  6. Andrey Novikov Says:

    Good news. Will you update the repository?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: