iGuidance 3.0 POI file format - partial decode
Instead of just bumping the old thread I decided to start a new thread; in part because much of the information in the old thread seems outdated or inaccurate. Old thread: http://www.mp3car.com/vbulletin/gps/60824-editing-reading-iguidance-poi-bin-files.html
I have been decoding the POI file and I have determined:
Little-Endian coding is used.
At offset 0x24 there is a ULONG referring to the number of entries in the string table.
At 0x78 the string table starts. Entries are separated by NUL. It ends at 0xAEF196.
POI entries are 31 bytes long.
There is no static separator between entries.
The structure is as follows where B is the starting offset of a POI.
B+0 = ULONG where the OFFSET IN THE FILE of the string in the file is determined by the 20 LSB (mask with 0x000FFFFF to get offset). I have no idea what the high 12 bits are for but they are used.
B+4 unknown, likely signed LONG, -1 is common in sections
B+8 unknown, but matches between POIs with same LAT/LONG (maybe just LAT?)
B+12 unknown, but matches between POIs with same LAT/LONG (maybe just LONG?)
B+16 FLOAT, LATITUDE
B+20 FLOAT, LONGITUDE
B+24 USHORT, flag bits of some kind, very sparse "bit-on" pattern
B+26 unknown, likely LONG, I think it might be the same for all POIs in a section (most-significant byte never seems to be utilized)
B+30 CHAR, values range from 1 to 34 or so, smells like flags
One group of POI entries starts at 0x01516C05
If this kind of hacking is something people enjoy or if you have information/know of something else started along these lines, lets me know. I could use help decoding the POI packing structure (the POI entries are separated into what appears to be geographical groups). I just hope there is no embedded BTREE or anything :-/
As a bonus, if I can get this decoded, a POI editor for all!