ov2 file format

Joined
Jan 9, 2009
Messages
6
Location
Netherlands
TomTom Model(s)
xl
Hi all people on this forum.

I am new in this forum and hope you people can give me some hope along the way. I am working in a multi utillity company in the netherlands and we have 180 tablet pc's and 2 navigator programs called navigon and tomtom.
We store and maintain our poi databases (10.000+) in an access database and every month we make navigon poi's with our tool that i make in VB.
Now some people want those poi's also in tomtom and now i have again a real big challenge on how to do that.
ov2 is a weird layout to my knowledge so if anyone know it and/or how to make it with a vb app i would be very very thankfull and name this site in my app, cross my heart!... :)

many thanx
Marc
Holland (the netherlands)
 
Last edited:
I believe programs on the net (google for them) such as POIEDIT, POI CONVERTER can take poi's for one brand and convert to that of another.

A link to some software can be found here
 
I believe programs on the net (google for them) such as POIEDIT, POI CONVERTER can take poi's for one brand and convert to that of another.

A link to some software can be found here

Hi DHN,
Yes i know there are online converter tools but to convert more then 1000+ pois that takes a h****l of alot time. I'm looking for a way to generate it in vb.
Thanx for the reply..
 
Now some people want those poi's also in tomtom and now i have again a real big challenge on how to do that.
ov2 is a weird layout to my knowledge so if anyone know it and/or how to make it with a vb app i would be very very thankfull and name this site in my app, cross my heart!... :)

many thanx
Marc
Holland (the netherlands)
It's not all that strange unless you're talking about the POI data that comes with the TomTom. Those are in a weird compressed format.
The "custom" file is not difficult to build yourself:

Each entry in a simple custom OV2 file is as follows.

1 byte: type (always 2)
4 bytes: length of this record in bytes (including the T and L fields)
4 bytes: longitude coordinate of the POI
4 bytes: latitude coordinate of the POI
13 bytes: null−terminated ASCII string specifying the name of the POI

Coordinates are stored as 4−byte integers representing a WGS84 longitude or latitude, multiplied by 100.000 and rounded to the nearest integer. As such, an X−coordinate should always be a value between −18.000.000 and +18.000.000, and a Y−coordinate should be a value between −9.000.000 and +9.000.000.
 
It's not all that strange unless you're talking about the POI data that comes with the TomTom. Those are in a weird compressed format.
The "custom" file is not difficult to build yourself:

Each entry in a simple custom OV2 file is as follows.

1 byte: type (always 2)
4 bytes: length of this record in bytes (including the T and L fields)
4 bytes: longitude coordinate of the POI
4 bytes: latitude coordinate of the POI
13 bytes: null−terminated ASCII string specifying the name of the POI

Coordinates are stored as 4−byte integers representing a WGS84 longitude or latitude, multiplied by 100.000 and rounded to the nearest integer. As such, an X−coordinate should always be a value between −18.000.000 and +18.000.000, and a Y−coordinate should be a value between −9.000.000 and +9.000.000.

Canderson,
Hi,.. this is what i'm talking about. No xtra tools just a way to program it in one vb application. Now i must find a way to do that hahahaha:D .
Still, it seems to be that you know this filetype very goot. Do you perhaps know a vb6 script to do the job ?
 
I wouldn't want to loose you here as a contributor but, have you asked at http://www.jouwnav.nl/ .
Cheers,

Hi Arno,

Thanx, you are a dutch dude yourself i think lol.
Well some forums are not really helping me cause it seems to be a difficult question. This is also the case at jouwnav.nl .
I just need a vb6 script that converts a text (csv) to the right ov2 format. :p
Oh well,... maybe some people know where to find them...

Thanx again.
 
Canderson,
Hi,.. this is what i'm talking about. No xtra tools just a way to program it in one vb application. Now i must find a way to do that hahahaha:D .
Still, it seems to be that you know this filetype very goot. Do you perhaps know a vb6 script to do the job ?
If you can dump your Access database out into an Excel CVS file format, I don't think I'd have much problem creating an *.exe that would do the conversion from that to the OV2.
 
Hi canderson,

I've found a dos exe tool called makeov2.exe .
With this tool you can convert txt files to ov2 and it works great!
It also creates a default bmp file

http://www.tomtom.com/support/ce/support/ov2/ov2tools.zip



The first tool, MAKEOV2, can be used to convert a simple text file containing the coordinates and names of locations into a ready-to-use OV2 file.
The second tool, DUMPOV2, can dump the content of POI databases into text format (yes, text that can be used by the MAKEOV2 tool).

The use of DUMPOV2.EXE is simple and straightforward:

DUMPOV2 [inputfilename] [outputfilename]

Where "inputfilename" must be a valid TomTom Navigator POI file (with extension OV2) or a valid Route Planner or Citymaps OVERLAY file (with extension OVR). It is recommended to provide an outputfilename with extension ASC. If you do not specify any parameters, all OV2 and OVR files in the current directory will be converted (but existing ASC files will not be overwritten).

The use of MAKEOV2.EXE is as follows:

MAKEOV2 inputfilename [outputfilename]

The input file should be a text file (extension ASC is recommended) that should simply contain lines of text. Any line starting with a semi-colon will be ignored. Empty lines will also be ignored. All other lines are expected to represent points of interest. Such a line should specify a longitude, a latitude and a name, seperated by commas. It is recommended that the name is put between double quotes. A name should not contain double quotes. Longitudes and latitudes may be specified either as degrees and fractions of degrees, or in degrees, minutes and seconds. Both colons and single-quote/double-quote notation may be used for minutes and seconds. So, all the following lines are all equivalent:

53.5 , 4 , "Truckers Restaurant La Bamba"
53.5000000 , 4.00000000 , "Truckers Restaurant La Bamba"
53'30"00 , 4'00"00 , "Truckers Restaurant La Bamba"
53'30 , 4'0 , "Truckers Restaurant La Bamba"
53:30:0 , 4 , "Truckers Restaurant La Bamba"
 
Hi canderson,

I've found a dos exe tool called makeov2.exe .
Sounds just like what you needed, already written! So I assume you dumped your Access to an Excel CVS file and had makeov2.exe do the conversion for you?
 
makov2

I tried visiting the link - but the page seems to have been removed. Any hints on finding those .exe files now?
 
It's not all that strange unless you're talking about the POI data that comes with the TomTom. Those are in a weird compressed format.
The "custom" file is not difficult to build yourself:

Each entry in a simple custom OV2 file is as follows.

1 byte: type (always 2)
4 bytes: length of this record in bytes (including the T and L fields)
4 bytes: longitude coordinate of the POI
4 bytes: latitude coordinate of the POI
13 bytes: null−terminated ASCII string specifying the name of the POI

Coordinates are stored as 4−byte integers representing a WGS84 longitude or latitude, multiplied by 100.000 and rounded to the nearest integer. As such, an X−coordinate should always be a value between −18.000.000 and +18.000.000, and a Y−coordinate should be a value between −9.000.000 and +9.000.000.

I was unable to get this format to work. As far as I can tell, it loaded correctly but when I tried to use it, there were no POIs on the GPS (I could see the category though). I tried both big and small endian for the integers.

I'm digging into the Favorites I downloaded from the GPS now which appears to have a somewhat similar format but different. Most notably, the null-terminated string seems to be variable length and looks like it can be longer than 13 bytes. Also, there is a record at the beggining that begins with a 'd'. I think that may just be the home address though. I'll post more as I find out more.
 
So, the bytes are little-endian and the text can be variable length (not sure what the max is). Here is some example code in perl which might help anyone if they want to give it a go themselves.

I also got confused by the multiplier thing for a second. For me, "." means a decimal place so I was multiplying by 100 rather than 100000 (though it did occur to me that 100 was a bit small)

Code:
#!/usr/bin/perl

#Written by Richard Thomas, 4-23-2015, released to public domain
#Donations to: bitcoin:1CUAEudNY6YctsipTrbFNRCMbwnbAxE87R

# 1 byte: type (usually 2)
# 4 bytes: length of this record in bytes
# 4 bytes: longitude coordinate of the POI
# 4 bytes: latitude coordinate of the POI
# n bytes: null.terminated ASCII string specifying the name of the POI

$lat=37.0728232; $lon=-84.282958;
$name="Point>6152223333";
$len=14+length($name);

$a=pack("C V V V a* x",2,$len,int($lon*100000),int($lat*100000),$name);
print $a;

There seems to be some issue with the POI bitmaps on my VIA. I can't get the transparency to work (should be magenta) and the GPS seems to cache images even if you overwrite them. Could be worse though.

Edit: It appears only name and phone# are possible maybe, separated by a > though I will try some other characters.
 
Last edited:
Wow - hadn't seen this thread in a while!
Transparency for all recent units has been managed by solid red background (255,0,0), not magenta, and that does work on all of my more recent via units (e.g., Via 1535 and Via 1605). And of course, be careful that whatever is inside the background (your icon) contains no solid red. Even one digit should take care of that (e.g., 254,0,0).
 
Cool. I will try the solid red at some point and report back though I have a via1750 so I expect to experience the same results.

I found some indication that GIFs (with transparency) work for the car icons so that may be something worth trying. There's some suggestion that may cause things to become a bit laggy though.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Latest resources

Forum statistics

Threads
28,820
Messages
194,341
Members
67,754
Latest member
CSXLocomotive

Latest Threads

Back
Top