TileShare is a set of programs and computer file specifications for those that need to use - and may want to share - large-scale paper maps on personal and mobile computers. Once transformed from their paper form into data files by scanning and processing, such "maps" (called "tilesets") become cross-platform entities that can be used (and shared) without change on many different computers, in a variety of applications.
Following is a summary of the most important characteristics of the tileset file format:
A tileset map can be used in memory-mapped mode on computers having either "little-endian" or "big-endian" architectures.
The tileset file format accommodates either lossy or lossless compression of bitmaps, or a combination of both.
Tilesets can be used effectively on systems with very little memory. Since the component tile spatial clustering is based on the Morton Squares schema, fastest possible navigation within large external files is assured.
Once a tileset has been assembled, all geopositioning and navigational functions use only integer arithmetic. Despite this, geometry computations are both global in scope and of centimeter-range precision. The tileset file format therefore is well suited for use in devices having no floating-point hardware.
TileShare system was developed by Geodyssey Limited of Calgary, Alberta, Canada, the developer and vendor of a comprehensive library of geographic software tools. However, in the hope that it will promote and facilitate wider sharing of scanned maps between users and geographical computer applications, all specifications and full source code presented here are free for either personal or commercial use; crediting Geodyssey Limited as the source is appreciated but is not required.
TileShare components presented on this web page include:
Tileset file format specifications - of interest to the application developers - are described in the extensive commentary of the C language header file tileset.h.
The complete TileShare Manual - of interest to both tileset creators and users - can be viewed here.
Operation of all the programs listed below is explained in the "TileShare Programs" section of the Manual.
viewtgxm is a simple Windows application for viewing tilesets. It can be used "as is" or as the basis for Windows applications with a more comprehensive repertoire of geographical functions. Alternatively, it may be used as the model to quickly port basic tileset viewing and GPS navigation capabilities to other computer hardware and/or operating systems. The program can be downloaded by following this link.
If you have a GPS device connected to your portable computer, viewtgxm can center on your location and trace your movements. To do so, you first start a program called gpsmonitor, which can serve any number of viewtgxm display windows with the positional information required to center on, and subsequently trace your current position. (It can also create a time/position log file). gpsmonitor is configured via a simple ASCII text ".init" file. The gpsmonitor program can be downloaded by following this link.
tscomp is a command-line program that "compiles" (assembles) one or several scanned map "sections" into a tileset. It can be downloaded by following this link.
bmpreg is a simple GUI applet that will measure pixel coordinates of a raw map scan section. It can be used to simplify the preparation of section-definition files and can be downloaded by following this link.
widthcalc is a command-line program that will calculate and report desired combinations of tile width in pixels and the number of tile columns, based on the pixels per unit of longitude of the scanned bitmap and the longitude range of the tileset. It can be downloaded by following this link.
gridder is a command line program that can be used to process maps with no latitude/longitude grid, but with four points, each in the general vicinity of one map sheet corner, for which the latitude and longitude are either known or can be measured with a GPS device. It can be downloaded by following this link.
By way of an example, there is a collection of four files.
louise150_a.bmp
and louise150_b.bmp
are two raw scans of a small part of Canadian 1:50K
topographic map 82 N/8, covering Lake Louise, Plain of the
Six Glaciers and Valley of the Ten Peaks in Banff National
Park, Alberta. louise150.sdef
is the textual
specification file, used - in addition to the two .bmp files -
to produce lake_louise.tgxm
: finished tileset of
the Bow Range (one of the most outstanding and yet easily
accessible destinations in the Canadian Rockies). Follow
this link for their directory.
As mentioned in the introduction, an extensive collection of source code is provided to those that intend to develop TileShare applications. Source code is provided with extensive commentary and addresses all of the essential steps required to create and use tileset files. It is organized in three directories:
The first directory contains cross-platform fundamentals: a header file that defines tileset file structures, their order of occurrence and their elements and C language code for a library of computational and indexing functions. Follow this link for the directory listing.
The second directory contains all of the source-code components for (previously introduced) viewtgxm and gpsmonitor programs. Follow this link for its listing.
The third directory (and its subdirectories) contains the source-code components for viewtgxm for Mac OS X. As mentioned above, this is only a limited functionality viewer; its main purpose is to provide a programming example for tileset dispaly and navigation on Mac OS X Carbon graphical API. Follow this link for its listing.
All comments, questions and suggestions are welcome. Please write to: hrvoje@geodyssey.com .