Archive for March, 2012

MapOSMatic hackfest, start of last day!

Saturday, March 31st, 2012

Once again, we have done significant progress yesterday.

Thomas worked on:

  • The front page for a multi-page map with a nice title, the map overview and the map information (last database update time, copyright, etc.);
  • A nice Donate page. We hope to be able to buy some hardware to increase the responsiveness of our server and to cover some of our expenses for such hackfest;
  • A small test suite. Not perfect but better than nothing. ;-)
  • The integration of all the work submitted by the three others of us.

Étienne worked on:

  • An overview map at the beginning of a multi-page map. It nicely shows all the individual pages on a small map of the city, with the corresponding page number for each one of them. Moreover, we now generates individual maps only for the area covering the chosen city, thus reducing the number of pages!
  • The index, taking care that listed streets are part of the chosen city and not adjacent ones;
  • Each map page in a multi-page map, putting a grey shade showing the limit of the chosen city.

Gaël, on his side, made several small but nonetheless difficult to achieve improvements:

  • He fixed a bug in the multi-page map index creation. All streets for letters considered the “same” in a given language (e.g. “e” and “é” in French) are now correctly put under the same index category;
  • He reduced the thickness of the grid on each individual map;
  • He added some missing street prefixes for French;
  • He fixed a lot of other small bugs;
  • He looked at the way we are projecting the map on a plane. In fact, in the future we might change the projection to avoid distortions on the map by leaving Mercator and choosing another projection (like the set of UTM ones).

On my side (David):

  • I improved the multi-page map street index so that it now wraps long names over several lines;
  • I re-implemented from scratch the B&W style sheet made by Sylvain in myself in order to have all of our changes at all zoom levels. There are still some bugs left, like remaining colours on tunnels.

The result of all this work can be seen on this new version of a multi-page map for Issy-les-Moulineaux. You can even test it on our development website (for France only, sorry).

Today, Frédéric is going to join us. We have to finish all the small details by the end of today!

MapOSMatic hackfest, start of day 7

Friday, March 30th, 2012

Yesterday, Thomas and myself made significant progress on the  ulti-page rendering engine! We are now able to produce a PDF file of a city on several pages, with a small map overlap between each page. We also produce the global index at the end that references the correct square on each page. You can see the current work in progress on this map of Issy-les-Moulineaux (PDF, 9MB).

On his side, Gaël continued his previous work on improving the scaling code of ocitysmap, our back-end rendering code until a suitable patch could be sent to our mailing-list. He then started to work on the Javascript code used on the client side of MapOSMatic. Apparently there are lot of small stuff to fix and doing this is not that easy. :-)

On his side, Frédéric worked on the style-sheets, trying to understand how they are organized and making improvements on the installation documentation.

Today, Étienne will join us again. We have still a lot of work to do before the end of this week! Stay tuned… ;-)

MapOSMatic hackfest, start of day 6

Thursday, March 29th, 2012

Yesterday, Gilles Lamiral, author of imapsync, visited us. Yes the one behind the original MapOSMatic idea!  We had a good time to discuss about MapOSMatic, OSM, Free Software, business models, pitfalls of modern Internet connections and much more.

Gaël has worked on scaling issues. At one point in the code we are rescaling the map to fit in a given paper size, with a given resolution. This part of the code triggers bugs, for example the badly placed one way arrows. Gaël has tried to improve that part of the code, removing unneeded scaling. Difficult stuff that is not finished yet but Gaël is making good progress.

Thomas and myself have worked on the multi-page renderer. Following on previous Étienne work, we are trying to add the ability to split a big PDF map into several pages with a common index at the end. Yesterday, we spent the whole day trying to split correctly the original map into smaller pages that overlap with a small margin. Gaël found our bug late in the night and now the computation seems correct.

BTW, a big thank to leaflet: it helped us produce some quick debug code to show the computed bounding boxes.

MapOSMatic hackfest, start of day 5

Wednesday, March 28th, 2012

On Monday and Tuesday, we have started to work on more difficult bugs and elaborated features.

Thomas has tried to find why the one-way street arrows on the MapQuest style sheet are wrongly placed. In fact, he found a bug in Mapnik2. But there are still some strange things occurring with this style sheet. :-)

Sylvain and myself (David), we have worked on a new “Black & White” style sheet. This style sheet is a derived version of original OSM Mapnik style sheet that contains less colours, for example on roads or buildings. This style sheet should produce much more readable maps when printing on black and white printers.

Étienne, Thomas and Gaël have started to work on an old feature request: maps cut into several pages, with a common street index. This feature is complex and difficult to implement, thus there is not much to show right now. Stay tuned! ;-)

MapOSMatic hackfest, day 3

Monday, March 26th, 2012

We are now starting the third day of the hackfest and some progresses have been made.

First of all, we have fixed small bugs that where hiding in the corners:

  • The display on thumbnails was breaking the website with Django 1.3, this is fixed;
  • The port number to access the GIS (Geographical Information System) is now a configuration parameter;
  • We use right and left arrows, displayed in bigger size, to navigate in the Create map dialogue;
  • We display a In progress icon when somebody is typing characters to look for a city name, giving a better feedback to the user on what the website is doing;
  • The user can now navigate with the Nominatim results, with Next and Prev buttons;
  • We display a message that explains why no Nominatim result has been found and how to fix it;
  • Hide the right arrow when the paper size is loading in the Create map dialogue;
  • When the same amenity appears several times in the same grid coordinate (e.g. several building of the same town hall), it appears only one in the index.

We have also started to work on small feature requests. Until now, we have implemented:

  • The display, on both the website and the generated maps, of the most recent date at which the OSM data has been updated;
  • The display of villages and hamlets in the index, a useful feature in rural areas.

You can see the all those features on the current development web site (for France only).

We are also working on the set-up of a new world OSM database in a suitable format for this new version of MapOSMatic. That way, we hope to deploy this new MapOSMatic to the world before the end of this week.

MapOSMatic hackfest in Rennes, starting up

Saturday, March 24th, 2012

Just a quick note to let our readers know that a MapOSMatic hackfest is taking place this week, from March, 24th to April, 1st in Rennes, France. David Mentré, Gaël Utard, Frédéric Lehobey as well as myself, who have already contributed to MapOSMatic, will be joined by a few other developers for a full week of intense coding around MapOSMatic.

We will try to publish blog posts throughout the week to let our readers know about what we are doing and where MapOSMatic is going.

MapOSMatic hackfest in San Francisco: what happened

Saturday, March 24th, 2012


On Saturday, 18th and Sunday 19th of February, a two days MapOSMatic hackfest took place in San Francisco, in the offices kindly provided by DotCloud. David Decotigny, Maxime Petazzoni, Jérôme Petazzoni and myself, Thomas Petazzoni, were the participants of this short session of hacking around MapOSMatic. The result of those two days of work is not yet visible on the production web site, but we hope to make it available soon.

Amongst the things that have been worked on:

  • David has worked on understanding a Mapnik rendering bug that happens with “halo” text when the Cairo surface is scaled and rendered to a PDF file. This bug is currently very annoying for MapOSMatic because all text rendered with a “halo” in the background looks really ugly on PDF maps. We have reported this problem in August 2010 on Mapnik bugtracker (see this ticket, which has then be converted to Github to this ticket). After two days diving into the Mapnik source code, David found out that disabling the glyph cache used by Mapnik made the problem go away, but this workaround would presumably significantly affect the rendering performance, so it really is a workaround and not a solution. We hope to get some feedback from the Mapnik community about this, but since last month when David worked on the issue, we haven’t so far received any feedback.
  • Jérôme has worked on the monitoring of our servers. He has set up a monitoring website at Amongst classical metrics (CPU, disk, etc.), Jérôme has added one special metric: the lag that our OSM database has compared to the official OSM database. Many of our users have often been asking why they are not quickly seeing their OSM changes in MapOSMatic maps. The diagram is visible at and shows this replication lag in seconds. At the moment, we are about 1.2 million seconds behind the official OSM database, which means about 14 days of lag.
  • Maxime has worked on the infrastructure as well, migrating the development version of the MapOSMatic installation to Mapnik 2, installing the MapQuest stylesheet, updating the OSM stylesheet, starting a new GIS database for importing the OSM data under the new schema expected by the latest OSM stylesheets.
  • On my side, I worked on fixing various minor issues on the web frontend that are currently preventing us from putting in production the current development version.
MapOSMatic Hackfest in DotCloud offices, San Francisco

MapOSMatic Hackfest in DotCloud offices, San Francisco. From left to right: David Decotigny, Jérôme Petazzoni and Maxime Petazzoni. I am behind the camera :-)

All in all, in just two days, we made a bit of progress, but not a lot. None of us had touched the project for quite a while, so it took some time to get up to speed, and two days were not sufficient to bring major results. However, we knew that a second hackfest would happen in France a month after, so the work will definitely continue !