osm2mp.pl: OSM -> Polish format converter

Here’s another suggestion for improvement: Choose which language to use by default (name:en, name:de etc. with name as fallback if it doesn’t exist)

Trying to setup a correct poi.cfg file. And I’m in desperate need of some clarification. Which POI numbers should I use, it doesn’t make sense to me since there are several numbers for the same POI’s: SCHOOL can be defined as both 0x6410 and 0x2C05. I have a faint memory of reading a webpage somewhere stating that you should avoid using certain number-ranges due to compatibility issues. So what numbers should I use to define POI’s?

If someone could clarify this for me I would greatly appreciate it!

Explain this, and if this is something you can specify anywhere which RGN set to use (as found in this file: http://ukgarminairmap.wikispaces.com/space/showimage/RGNtype.txt ):

Really nice script.
I noticed one bug in the newest version though(An old version I used before did it correctly), some roads where getting random “no bicycle, no car, no etc…” tags
I solved this problem by changing

      undef ($poly);

      undef ($polyname);
      undef ($polydir);

      next;
   }

to

      undef ($poly);

      undef ($polyname);
      undef ($polydir);

   undef ($polytoll); 
   undef ($polynoauto);
   undef ($polynobus);
   undef ($polynoped);
   undef ($polynobic);
   undef ($polynohgv);

      next;
   }

Not sure if it’ll cause any other problems, but at least the highway near my house isn’t closed for cars anymore.

stupid bug… thanks! :slight_smile:

Hi Liosha, and thank you for the great job you do on routed maps.
You are using Template.pm module since few days. And when I run osm2mp (v0.60r19) it fails on Template.pm

Can’t locate Template.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at F:\David\OSM\Tools\osm2mp_v060r19\osm2mp.pl line 66.
BEGIN failed–compilation aborted at F:\David\OSM\Tools\osm2mp_v060r19\osm2mp.pl line 66.

Where can I find this perl module ?

Yes, now osm2mp uses Template-Toolkit and Getopt::Long.
See http://cpan.org/
I use Perl Package Manager (PPM) to install them

The page
http://wiki.openstreetmap.org/wiki/Mkgmap/routing
says:
"osm2mp v0.53 has a bug causing access permissions to be overwritten. This has been fixed in the svn version. "

Can we have a new version with this fix?

Beside, could you please switch from DOS linebreaks (cr/nl) to unix breaks? The DOS breaks cause that it’s not possible to make the osm2mp.pl file executable on linux and just run it:

hanno@libertalia ~/osm/routing/osm2mp-read-only/osm2mp $ ./osm2mp.pl
-bash: ./osm2mp.pl: /usr/bin/perl^M: bad interpreter: Datei oder Verzeichnis nicht gefunden

ok, i’ve removed cr symbol
you can get fixed code from svn: http://code.google.com/p/osm2mp/source/checkout

Liosha,

first of all “Thank You” for the great script you wrote. I found that --fixclosenodes does not work correctly in all cases as cgpsmapper still detects a couple of too close nodes. As far as I can tell the closenodes() function is implemented correctly. My guess for the cause is that nodes are only checked and corrected in pairs: Assume that node 1 is too close to both node 2 and node 3. First the distance to node 2 ist corrected and then the distance to node 3. The second correction might push node 1 closer to node 2 again.

As a workaround I tried to execute the correction repeatedly in order to slowly push all conflicting nodes further apart until everything is fixed. However, it seems that this does not work. Either it converges only very slowly or certain node constellations are cycled through in a circular way. Unfortunately, I am not very good at perl so that I can’t try anything more sophisticated.

I know about this problem
But it requires too complex processing to fix it
So i advise to fix such areas in OSM, or use cgpsmapper -e

Version 0.60
http://gpsmapsearch.com/osm/osm2mp_v060.zip

  • added street indexing support (from is_in tag)
  • added command-line options
  • added list of tags for Label (–nametaglist)
  • fixes

Now it needs two perl packages: Template-toolkit, Getopt::Long

have you got a wiki page for documentation for this package ?
and some 1,2,3 steps would be good for us noobies

There is a page in wiki, but not much documentation there
http://wiki.openstreetmap.org/wiki/Osm2mp

I tried to use mapcenter2. Is there a possibility to pass the -e option?

I just found out that there’s no license information of any sort in osm2mp.

Can you put it under some free software license?

it is under GPL v2 in svn: http://code.google.com/p/osm2mp/

10x for your work liosha. I am u junior programer(Still studying) but in Java and c# would like to help one day.

Hi,

i tried your script and it works great but only with small areas. It worked with the state of saxony (a german state) and most other german states, but if i try Germany as a whole it crashes with some memory errors. Do you what i can do to fix this?
Ok, the resulting .mp file was also converted by cgps-mapper and MapSource shows it and can calculate routes and i’m able to transfer them with MapConverter onto my Mac.
But a problem arises for me:
If i create maps for every german state, i can show only one of the maps and also routing is possible inside one map only. How can i link or unify more maps to one bigger map? I know it should work with sendmap, but there i need img files while cgpsmapper created directories.

Thanks an best regards
Sven

I don’t think our current tools are able to identify the roads that cross different tiles. So currently you could use GPSMapEdit to add the necessary information to the map images. This is described in the wiki.

Some interesting info on this

That’s an old posting before liosha’s script was available :laughing:

My solution to the routing across tiles problem is more of a hack, rather than a solution. I use osmosis to split my OSM data into tiles, and the connecting nodes of the splitted roads are manually tagged as “garmin:is_external_node=true” (they are currently not that many in OSM Malaysia). In liosha’s script I added a conditional statement that will change the nod values for these connecting nodes (see http://forum.openstreetmap.org/viewtopic.php?pid=13274#p13274)

My previous tests shows that it works when the tiles are square (the connecting nodes are all at tile borders). I’m not sure how it’ll work if the tiles are irregular as in the shape of a state or country. Had a plan to experiment on this but haven’t got started yet :frowning:

It’d be great if osmosis or any tile splitter tool can automatically tag the connecting nodes as such, rather than doing a major overhaul of your current tools.