osm2mp.pl: OSM -> Polish format converter

Yes, the new nodes should be right at the edge of the tile.

Ok, should the node have the same id in both tiles?

Doesn’t have to be the same id. Here’s an example (in polish format) of a way that extends to another tile. The most important thing is that the coordinates should match up, and it is exactly at the edge of the tile.

Tile 1
[POLYLINE]
Type=0x01
EndLevel=4
Label=~[0x04]E2 NSE
DirIndicator=1
Data0=(3.0391936,101.7062182), … (2.6274582,102)
RoadID=1299
RouteParams=6,4,1,0,0,0,0,0,0,0,0,0
Nod0=0,1046,0
Nod1=
…
Nod16=224,2649,1
[END]

Tile 2
[POLYLINE]
Type=0x01
EndLevel=4
Label=~[0x04]E2 NSE
DirIndicator=1
Data0=(2.6274582,102), … (2.1308003,102.7412188)
RoadID=285
RouteParams=6,4,1,0,0,0,0,0,0,0,0,0
Nod0=0,1143,1
Nod1=56,462,0
Nod2=97,754,0
Nod3=215,375,0
Nod4=223,769,0
[END]

Some info from Rottweiller Auto-Routing guide (via http://cgpsmapper.com/route.htm))

All of the above are if we are using the gpsmapedit method. It seems that maproute can detect and join the matching nodes automatically, which I think is the best way to work with irregular-shaped maps.

Saved by the bell for me :smiley:

http://www.mkgmap.org.uk/page/tile-splitter

Now only Mkgmap needs to be adapted to set the correct edge routing information.

The following is a copy from the IRC talk about this, contains some additional info:

Great stuff indeed :stuck_out_tongue:

Could someone point me to wiki article or similar describing the tiles you are referring to?
What defines the tile edges? I create map from southern half of finland. Looking at the link http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=http:%2F%2Fwww.mkgmap.org.uk%2Ftmp%2Fareas.kml&ie=UTF8&z=3
seems that my map contains 3 tiles. Is that the case?

The tilesplitter has some kind of tile optimisation algorithm which aparently produces these tile bboxes. Luckily you can define your own bboxes as well, placing the while of Finland in a single tile and have the algorithm determine the other bboxes.

This is my result when working with half the planet (Europe, Asia, Africa and Oceania)

That’s nice, prolly a picture of the month… And also fun seeing Google maps being slow.

Hi all!

I’ve added basic cropping functionality to osm2mp. It also creates boundary road nodes.
This time available in svn only.
Use --bbox <minlon,minlat,maxlon,maxlat> to specify boundary box.

Does this mean that I can take one large file (say country.osm), split it into smaller tiles via multiple runs of osm2mp with several matching --bbox’es and routing will work across tile borders?

weolvi,
yes, you can. And routing will work :slight_smile:
You can also use tile splitter first, and then osm2mp with bboxes from areas.list
I’ve successfully built map of Russia such way: http://gpsmapsearch.com/osm/mp/

Note that turn restrictions disabled this time

Awesome! It looks like we now have a full chain of software capable of generating routable Garmin maps without human intervention for the first time. :smiley:

Very cool and good work liosha!

/me is going to implement an automated chain this weekend :slight_smile:

great work , I’m sure we are all waiting for this
thanks

Always a convert a map from an osm file to mp with osm2mp I get some messages saying: Warning! Turn restriction RelID=XXX is not properly processed, but I check relations and seem to be correct (at least I don’t find the error). Could someone check relations in this area [1] and tell me if there’s something wrong or if it’s a problem of osm2mp?
[1] http://www.openstreetmap.org/?lat=39.481821&lon=-6.363901&zoom=18&layers=B000FTF

cdavila,
it’s a problem of osm2mp - this time it can’t process restrictions on splitted roads.
hope i’ll fix it soon :slight_smile:

OK, let’s wait
Thanks

Some experiences
Ok, so I also tried to put up a chain to produce some maps for the first time. But it was neither easy nor successful – most likely depending on the tools used. Here’s what I experienced; maybe somebody has some good ideas for improvement:

  • Using “osm2mp --bbox …” didn’t work for me on europe.osm as osm2mp first loads all nodes into memory and fails after about 8 million because I have only 1GB. Ok, so I have to first make tiles that are slightly larger and then let osm2mp do its job.

  • Tried “osmosis --bb completeWays=yes” to include every polygon that has at least one node inside the bbox but this is so slow that it’s just unusable.:frowning: Then I tried just some ordinary but 0.1° larger bbox’es and that worked OK. But who knows what that 0.1° should really be?

  • Then I wanted to compile and test my new maps with mkgmap. Compilation worked and I can see all tiles on my Garmin. Routing works but not across tile borders.:frowning: Is it possible that mkgmap is not yet able to use the links provided by osm2mp?

Just in case you succeed – could you please make a complete set of maps of Europe? I am still using Radomir’s, but they are getting outdated and France is broken (at least on my machine).

I planned to use the tilesplitter application.

Osmosis’ completeways function is borked :slight_smile:

That is very possible. Perhaps the author of Mkgmap just needs to be informed of the mechanism osm2mp is using.