Leman lake on land !


I discovered the OpenStreetMap project some days ago. Fantastic ! I already started to contribute on the map in my region.

I live in Publier, France, close to the Leman lake. I own a Garmin Vista HCx, and I noticed something really weird:

I downloaded an OSM (from GEOFABRIK) for my region, splitted the tiles with splitter (java -Xmx1G -jar splitter.jar rhone-alpes.osm.bz2), then generated the gmapsupp.img with mkgmap (java -Xmx1G -jar mkgmap.jar -c template.args). The map routing works nice, butI noticed that the leman lake is on the land, not at its place.

I got some img tiles for my region from Lambertus project site. I generated the gmapsupp.img with mkgmap the same way than previously (same mkgmap version and same parameters), BUT NOW the lake is RIGHT AT ITS PLACE, not on the land !

BIG QUESTION:What can explain that difference ?

GEOFABRIK OSM file → splitter → mkgmap → gmapsupp.img with lake wrong
Lambertus tiles → mkgmap → gmapsupp.img with lake ok.

As I use the same mkgmap parameters, is it some splitter options that Lambertus use and me not, or can be the OSM datas different from GEOFABRIK and other sites ?

Any suggestion welcome !


What does your template.args file contain?

You are not necessarily using the same Mkgmap parameters. The tiles on Lambertus site have already been generated using Mkgmap. When you run Mkgmap on them, probably all it is doing is joining them together into a gmapsupp.img file.


my template.args contains tiles names, and only few parameters:


I tried with and without ‘generate-sea=multipolygon,floodblocker’.

My last try was with a more heavy template.args:


So Lambertus tiles are already converted to vectors, and I only merged them ?

thanks for your help

It could be a problem with the a) splitter or the b) geofabrik abstract (because Lac leman is in two countries). Which splitter options do you use?
Maybe try the geofabrik europe.osm.pbf extract (pbf is smaller and works faster than the osm.bz2) with the splitter areas.list that you already have.
java -Xmx1024m -jar …\splitter-r170\splitter.jar --split-file=areas.list --overlap=6000 europe.osm.pbf

Hi again,

I will try doing the processes starting from europe.osm.pbf instead of france or rhone-alpes only. Do you refer to the areas.list generated when I splitted france.osm or rhone-alpes.osm ?

Thanks for your help

P.S: Can Osmosis manage pbf too ?

I dont know, I guess the splitted area of rhone-alpes.osm is much smaller and you’re only interested in that region right?
As far as I understand osmosis can handle pbf files too.

I’m interested in a custom region, most rhone-alpes + switzerland. Lambertus tiles are perfect for that, as I just have to wget the ones I wish and assemble them with mkgmap. Sadly for the moment Lambertus tiles are updated only once a month, and as I do many little changes in my region for the routing to work fine, it’s not ok for me.

Tiles from Geofabrik are updated more frequently, but I have that problem of Leman lake on land (and empty land at Leman lake location) !

For the moment, for testing my OSM mapwork I export a small area (around the change I done) directly from Openstreetmap (XML), then process it with mkgmap.

But my “dream” is to find a way to have the whole region (Rhone-alpes+switzerland) up to date on my Etrex.

So I hope the Leman lake problem will go away with the europe file from Geofabrik …

Thanks again for your help and infos.


Im pretty sure those problems were caused by the regional geofabrik extracts who cuts the regions exactly at the borders, resulting in broken multipolygons.
The geofabrik extract of whole europe will avoid those problems. There are two ways to split a small section of the europe extract:

  1. with osmosis
  2. with a predefined area.list and the mkgmap splitter, but the problem is to calculate the borders of that region in garmin units. See also here: http://www.cferrero.net/maps/splitter_advanced.html

Yes, I use Osmosis to reject all buildings from the map before converting it.

I have some last questions:

  • Osmosis with ‘–bounding-box left=“” right=“” bottom=“” top=“”’ will cut the portion i’m interested in. How can I determine the left/right/bottom/top numbers ? Is it a way to read them directly (from Openstreetmap extract window for example) ?

  • Can I apply the ‘–tf reject-ways building=*’ in the same time, or is it time consuming and so better to run it on the cut portion of europe ?

  • So is the good processing order so: osmosis to cut of the portion I want, osmosis to reject buildings, splitter, and finally mkgmap to assemble the tiles ?

I think I’m close to achieve the process. I will then script all the tasks, et voilà !


The bounding box you can find in the export tab on openstreetmap.org
I have no idea how to get rid of those buildings with osmosis, you can do this better with mkgmap by editing the default style (just put a # in the polygons file on the line where the buildings are processed, you can change more lines in those style files for items you dont want to see either, or add objects that arent rendered in the default style).

I use this website to get bounding boxes: http://touren.mospace.de/kachel.html


thanks for all helps. By extracting a bouding-box from europe osm, the Leman lake is at its place. So the problem with France or Rhone-Alpes osm is that the lake is shared by France and Switzerland, and bad managed when these 2 OSM are built.