Recent diary entries
I was working with OpenStreetMap during the summer on the library called libosmscout. Libosmscout offers offline rendering and routing on OpenStreetMap data, and my project’s aim was to expand the library by implementing an OpenGL based renderer.
Two components of the libosmscout project is my work:
- libosmscout-map-opengl is the OpenGL renderer.
- OSMScoutOpenGL is a simple demo application, that presents the usage of the OpenGL renderer.
Links to my commits, pull request, and issues:
- My commits on github can be viewed here: Commits by fannymonori.
- My pull requests can be viewed here: Pull requests by fannymonori. My work was constantly merged, rather than having one pull request at the end.
- The closed issues that were assigned to me: Closed issues by fannymonori
- A short description of the OpenGL renderer can be viewed here: libosmscout: OpenGL backend
I met the objectives that were given in my proposal.
- All the four main features of the map (areas, ways, labels, and ground) are rendered correctly.
- Most of the styling options are supported
- It is cross-platform
- There’s a working desktop demo application
A few screenshot of my work:
The end of the 2017 Google Summer of Code is getting closer. In the last weeks I was working on styling the map.
The most challenging task this month was definitely the anti-aliased ways, and I ended up doing that with the help of barycentric coordinates. I also added borders to areas and paths. I did a mistake previously, and not all buildings were visible, but I have fixed that issue, and now small buildings are also visible.
There is still some work to do, I intend to concentrate on the obvious things in the next day. Looking at the pictures below one can see that dotted/stippled lines are not yet supported (in the first picture the tiny red lines should be dotted). Fixing the looks of the texts also have high priority. The size is not quite right, and it is blurry. I also want to add support for patterns before the GSoC ends.
This week the last coding period in the Google Summer of Code 2017 started, so I thought a summary of the previous two months as an OpenStreetMap GSoC student would be appropriate.
During the three months of the program I have to implement an OpenGL renderer backend for libosmscout library, in order to achieve a fast rendering that runs on both PC and mobile devices.
The first half of the program I was busy with creating the basis of the OpenGL renderer. I divided the TODO list into 4 bigger parts: rendering areas, rendering ways, rendering ground tiles, and rendering labels. Until now I was working on these 4 type of objects to visualize, with a minimal styling (only color). After two month of work the efforts are starting to show, as seen in the pictures below:
The objectives for the first 1,5 month were rendering the 4 main type of objects, and these objectives were met, but some important styling features are missing, and implementing those features is my job for the last month. In the next few weeks I’m implementing borders, and I will add ending caps to the ways (these are the most prominent features that are missing). Also refining is needed for text rendering, and anti-aliasing (which is too smooth in some zoom level), and there is room for enhancement regarding performance and the demo application I created.