Description of the "Ini Map Stitching" (IMS_*.ini) file format
==============================================================
(Note to German readers: ich schreibe diese Dokumentation bewusst in
 englischer Sprache -wenigstens versuche ich es-, weil ich denke, da
 sie von allgemeinem Interesse ist...)

IMS files are simple text files using the Windows .ini file format.
I assume that the .ini file format is known and will not document
it here. You may find it easier to understand the format and possible
settings, if you open one of the supplied IMS_*.ini files. You can
use any text editor (e.g. NotePad or WordPad) to open the files.

IMS .ini files must have at least three sections:

(1) [Map] section
(2) [Layers] section
(3) one layer section

Keys that can be used in the sections
------------------------------------------------------------------------------------
Key                ; meaning
------------------------------------------------------------------------------------
                   ;
                   ; Tile storage
                   ; ~~~~~~~~~~~~
TilePath=          ; TilePath specifies the path where the tile files are stored.
                   ; This key can only be used in the section [Map], thus the value
                   ; of TilePath gives a path common for all layers.
                   ; If TilePath is empty, a "select folder" dialog is displayed
                   ; at runtime to select the folder. The selected folder can
                   ; optionally be written in the TilePath key so that you do
                   ; not have to select the folder again.
                   ;
                   ; Special value "." : TilePath is assumed to be the folder where
                   ;                     the IMS ini file is located.
                   ;
                   ; Hint: If there is more than one layer and the tile storage path
                   ; depends on the layer, TileFileFormat can be used to specify
                   ; subfolders (see example below).
TileFileFormat=    ; Format string giving the rule to generate the tile filenames
                   ;
                   ; Example: TileFileFormat=""%2:3.3d\%0:3.3d_%1:3.3d.png"
                   ;
                   ; substitutions at runtime (see also Delphi function "Format()")
                   ;   "%0:"  -> tile number X
                   ;   "%1:"  -> tile number Y
                   ;   "%2:"  -> tile number Z ("zoom level")
                   ;   "3.3d" -> three digits with leading zeros ("000", "001" ...)
                   ;
MapName=           ; MapName specifies the name of the map
                   ; You should not use special characters like "*", ":", "/" and "\",
                   ; as MapName is also the default file name (or part of it) when a
                   ; conversion is started. I suggest that you avoid accented characters
                   ; and just use plain ASCII.
MapComment=        ; Comment
                   ; The comment is written to the calibration files if possible
                   ; (not all calibration file formats support comments)
MapScale=          ; MapScale sets the scale info (unit meters)
                   ; MapScale currently is written to TTQV .cal files only.
                   ; The value is more or less just informal and can also be
                   ; changed afterwards in TTQV.
                   ; Map scale values originate from paper maps. With digital maps
                   ; the pixel resolution (e.g. meter per pixel) is more meaningful.
                   ; The map scale just gives an indication how detailed a map is.
                   ;
                   ; Tile dimensions
                   ; ~~~~~~~~~~~~~~~
TileSizeX=         ; tile width in pixel
TileSizeY=         ; tile height in pixel
                   ;
                   ; Tile number range
                   ; ~~~~~~~~~~~~~~~~~
TileMinX=          ; minimum horizontal tile number
TileMaxX=          ; maximum horizontal tile number
TileMinY=          ; minimum vertical   tile number
TileMaxY=          ; maximum vertical   tile number
                   ;
                   ; minimum/maximum tile numbers can be negative. Since internally
                   ; map tile numbers are always >=0, there will be a tile number shift
                   ; if you use negative values.
TileZ=             ; TileZ usually gives a layer level (or resolution) and can be
                   ; made part of the tile filename (see TileFileFormat).
                   ;
                   ; Tile numbering (direction and step value)
                   ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TileDeltaX=        ; horizontal tile number increment/decrement (positive/negative values)
TileDeltaY=        ; vertical   tile number increment/decrement (positive/negative values)
                   ; Map tile numbers internally are ALWAYS arranged from left to right
                   ; (X increasing) and top to bottom (Y increasing). If the tile files are
                   ; arranged like on a printed map, Y values are decreasing from top to bottom.
                   ; The direction then has to be adjusted with a negative TileDeltaY.
                   ;
                   ; Note: you most likely will get confused if you use negative TileDeltaX or
                   ; TileDeltaY values... Feel free to ask for details...
                   ;
                   ; Map calibration
                   ; ~~~~~~~~~~~~~~~
MapProjection=     ; Projection and parameters (if any) separated by commas.
                   ; The following projections are currently supported:
                   ;
                   ; (1) Projections with (mandatory) parameters
                   ;
                   ; "Transverse Mercator",<N0>,<CM>,<K0>,<FE>,<FN>
                   ; "Lambert Conformal Conic",<N0>,<CM>,<FE>,<FN>,<L1>,<L2>
                   ; "Equirectangular",<N0>,<CM>,<FE>,<FN>,<LS> 
                   ; "(UTM) Universal Transverse Mercator",<CM>
                   ;
                   ; Parameters
                   ;
                   ;   <N0> = origin north
                   ;   <CM> = central meridian
                   ;   <K0> = scale factor
                   ;   <FE> = false easting
                   ;   <FN> = false northing
                   ;   <L1> = first  lambert parallel
                   ;   <L2> = second lambert parallel
                   ;   <LS> = latitude of true scale
                   ;
                   ; Note: If you use "(UTM) Universal Transverse Mercator", you have to
                   ; give the central meridian NOT the UTM zone! The central meridian
                   ; <CM> can easily be calculated from a given UTM zone:
                   ;
                   ;             <CM> = (<UTM Zone> * 6) - 183
                   ;
                   ; (2) Projections without parameters
                   ;
                   ; "Latitude/Longitude"
                   ; "(BNG) British National Grid"
                   ; "(IG) Irish Grid"
                   ; "(SUI) Swiss Grid"
                   ; "(SG) Swedish Grid"
                   ; "(II) France Zone II"
                   ;
MapDatum=          ; Geodetic datum
                   ; The following geodetic datum values are currently supported:
                   ;
                   ; "WGS 84" ("WGS84")
                   ; "Potsdam Rauenberg DHDN" ("Potsdam")
                   ; "CH-1903"
                   ; "LUREF"
                   ; "RT 90" ("RT90")
                   ; "Ord Srvy Grt Britn"
                   ; "NTF France"
                   ; "NAD83"
                   ; "NAD27 CONUS"
                   ; "Ireland 1965"
                   ; "Belgium 1972"
                   ;
                   ; Note: not all possible values of MapProjection and MapDatum
                   ; (and their combinations) are tested. If you find any
                   ; errors, report it!
                   ;
                   ; Pixel resolution
                   ; ~~~~~~~~~~~~~~~~
UnitsPerPixel=     ; Usually UnitsPerPixel must be given in meters per pixel. Only for
UnitsPerPixelX=    ; "Latitude/Longitude" it must be given in degrees per pixel.
UnitsPerPixelY=    ; If the values of UnitsPerPixel are different in X- and Y-
                   ; direction, you can specify UnitsPerPixelX and UnitsPerPixelY.
                   ;
                   ; Reference points
                   ; ~~~~~~~~~~~~~~~~
RefPoints=         ; RefPoints defines how many reference points follow.
                   ; Currently only one reference point is supported and UnitsPerPixel
                   ; (or UnitsPerPixelX and UnitsPerPixelY) must be specified.
                   ; It is also possible to omit RefPoints completely, if the map tile
                   ; numbers (and thus the map tile file names) follow special rules.
RefPoint_1=        ; RefPoint_X defines one reference point (X= 1 ... RefPoints)  
                   ; Three formats are supported:
                   ;
                   ; RefPoint_N=XN,YN,M,Easting_N,Northing_N
                   ;                  or
                   ; RefPoint_N=XN,YN,D,Longitude_N,Latitude_N
                   ;                   or
                   ; RefPoint_N=XN,YN,U,Zone_N,East_N,Northing_N,Hemi_N
                   ;
                   ;   where XN = horizontal pixel position of reference point RefPoint_N
                   ;         YN = vertical   pixel position of reference point RefPoint_N
                   ;         M  = reference point is given in meters (grid coordinates)
                   ;              Easting_N   = easting  value in meters
                   ;              Northing_N  = northing value in meters
                   ;         D  = reference point is given in degrees (geographic coordinates)
                   ;              Longitude_N = Longitude in degrees
                   ;              Latitude_N  = Latitude  in degrees
                   ;              Longitude_N and Latitude_N values must be given in decimal
                   ;              degrees (west and south values are negative).
                   ;         U  = reference point is given in UTM coordinates
                   ;              Zone_N      = UTM zone
                   ;              Easting_N   = easting  value in meters
                   ;              Northing_N  = northing value in meters
                   ;              Hemi_N      = hemisphere = "N" or "S"
                   ;
                   ; OziExplorer grid settings
                   ; ~~~~~~~~~~~~~~~~~~~~~~~~~
LLGridSpacing=     ; sets the LatLon Grid    interval (unit minutes)
GRGridSpacing=     ; sets the Alternate Grid interval (unit meters)
                   ; The two GridSpacing settings are written to OziExplorer .map files only.
                   ; A value of 0 (default) disables the grid ("No grid").
                   ; You can alter the grid settings at any time in OziExplorer.
                   ; In TTQV there is no way to have grid settings on map level
                   ; (grid spacing is a program setting for all maps in TTQV).
