Quote: Originally Posted by lefcourt
I spent a few minutes looking at this file, too, and thought that I'd post what I found:
* It looks like all the POI names are loaded into an array of ASCII strings, and then an index is used to look them up. Hex position 36 in the file is the number of strings in the array. I took a sample location entry (everything between FF FF FF FF's) and got this:
First 32 bytes are latitude and longitude:
66 35 20 42 Float Latitude
94 34 D2 C2 Float Longitude
Next however many, I have no idea:
FF 7F 9E 16 00 00 06 86 10 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00
Then there are these two repeating sections:
93 3F 05 00
93 3F 05 00
93 3F 05 00
93 3F 05 00
and
B2 3F 05 00
B2 3F 05 00
B2 3F 05 00
B2 3F 05 00
B2 3F 05 00
Then this:
04 79 00 1C BC C4 01 00 EB
Then the index into the name array:
2D 12 Unsigned Short Index into strings array
And the remainder:
00 3F 06 00 40 AB 21 20 42 E2 21 D2 C2 02 00 41 0D 00 00 19 87 69 01 00 00 00 00 00 CB 6D 01 00
Hopefully someone else has some good ideas!
- Jes
Nice! Its another part of the puzzle. Do you think the strings array is refrenced by offset in the file, or offset by index? If it was an index offset, the program would have to load the entire array into memory at runtime, but isn't the POI database pretty huge (much more than a PDA running iG could handle)?
Ideas?