Guys, here is the struct used in the index structure:
typedef struct indexEntry {
int x,y; Â Â Â Â Â // x, y coordinates in UTM divided by TILE_UTM_SIZE, as used to query Terraserver
int file; Â Â Â Â // which mapsX.dat file this tile is found in
int offset; Â Â Â // offset from the beginning of the mapsX.dat file where the jpeg is stored
int size; Â Â Â Â Â // size, in bytes, of jpeg from mapsX.dat file
char typ,zone; Â Â // typ - tileset number, zone - UTM zone for x,y coordinates
} indexEntry;
The mapsX.dat files are simply binary files with jpegs (and gifs) written sequentially in them. Â There's no struct that goes with them, although if you take a look at it we store all of the above information as a header (in ascii text) before each image. Â This way the index file can be reconstructed from the maps.dat files.
So, if you find a matching x,y,zone,typ for a given tileset, you read it from the corresponding (file) mapsX.dat by seeking mapsX.dat to 'offset' position, then reading 'size' bytes. Â It's fairly simple.
The code is in visual studio 6, with most of the code written in C as an active X control - GPSMaster.ocx. Â However, I think any map managing tools make sense as standalone applications, unless you have something else in mind.
Anyone who is willing to work on programs to handle or process maps please post here and let me know how I can help.