Bristol Wearable Computing

[ Home | Plans | Meetings | Members | Search | Papers | Links | CyberWear | LocoSoft]


True GPS (TGPS)

Purpose

To allow matching and acquiring functions for positional context information that has meaning to the user (unlike absolute positions which have very little meaning [and therefore little value] to the user).  TGPS also provides a more continuous and stable location service that can continue when the user is either indoors or outdoors by combining data from more than one location sensing device.

GPS Map Files

Description

Map files are needed to convert absolute GPS co-ordinates into place and domain names.   These files contain lists of points that bound discrete areas that are then given a name and a domain.  For example, a list of points that bounds the UK would be given the name 'United Kingdom' and the domain '/UK'.  Map files are to be stored as notes, and in each domain that is associated with a physical location there is to be a map file that will describe how to further subdivide the domain into smaller sub-domains.   Expanding the 'UK' example, the map file that specifies country outlines will be stored in the domain '/LOCATION/NAME'.  If we then suppose that the person is found in to be in the '/UK' sub-domain, a map will be retrieved from '/LOCATION/NAME/UK' to subdivide the region further.  This may give us the domain '/LOCATION/NAME/UK/Bristol'.  Map files will be requested from domains until there are no further map files, or the GPS co-ordinates are not in any of the defined sub-domains.  Thus, the best case for a TGPS location name may be '/LOCATION/NAME/UK/Bristol/Clifton/Park_Street/Top'.

File Format

Map file title block
'!MAP' 4 bytes Map file type identifier
ddmmyyyy 8 bytes Map file creation date
String of 100 chars 100 bytes Text information about the map
C type 'double' 8 bytes :Latitude of the north point held in the map
C type 'double' 8 bytes Longitude of the west most point held in the map
C type 'double' 8 bytes :Latitude of the south point held in the map
C type 'double' 8 bytes Longitude of the east most point held in the map

After this initial title block, one of the following types of block will follow immediately.

Map file data block (type 1)
Flag 1 byte -1 to show this block contains a list of roads
Number of pairs of points 1 byte Shows how many pairs of points define the following area
If it equals 0, show that there are no more areas to define
C type 'double' 8 bytes Latitude of point
C type 'double' 8 bytes Longitude of point
... ... More pairs of points, until the number of pairs of points is fulfilled
C type 'unsigned char' 1 byte Shows how long the following string is to be
String of chars As above The real name of this area
C type 'unsigned char' 1 byte Shows how long the following string is to be
String of chars As above The domain name of this area.  Prefixed with '~' to mean that this name should be appended to any previous name
Back to 'Number of pairs of points'

 

Map file data block (type 2)
Flag 1 byte 0 to show that this sub-divides the area
C type 'double' 8 bytes Longitude of divide
C type 'double' 8 bytes Latitude of divide
C type 'double' 8 bytes Offset in file to Map data block that holds data about the zone North West of the divide
C type 'double' 8 bytes Offset in file to Map data block that holds data about the zone North East of the divide
C type 'double' 8 bytes Offset in file to Map data block that holds data about the zone South West of the divide
C type 'double' 8 bytes Offset in file to Map data block that holds data about the zone South East of the divide

Pinger Map Files

Description

Should be here.

File  Format

Map file title block
'!PNG' 4 bytes Pinger map file type identifier
ddmmyyyy 8 bytes Creation date
String of 100 chars 100 bytes Text info about the pinger map file
C type 'int' 4 bytes Offset in file to start of pinger list block
C type 'int' 4 bytes Offset in file to end of pinger list block

After this initial title block, the following of block will follow immediately.

Pinger list block
C type 'char' 1 byte Pinger number
C type 'int' 4 bytes Offset in file to pinger information block for this pinger
..... ..... More entries as above

Note: pingers are to be sorted by number in the above block to allow binary chop searches to be used

 

Pinger Information block
C type 'char' 1 byte Length of the location name for pinger
String of chars x bytes Location name for pinger
C type 'char' 1 byte Length of the domain name for pinger
String of chars x bytes Domain name for pinger

 


unicrest.gif (4191 bytes)

The material displayed is provided 'as is' and is subject to use restrictions.
For problems or questions regarding this web contact Cliff Randell.
Last updated: January 14, 2000.
logoep.gif (1404 bytes)
ęCopyright Hewlett-Packard 1997-2000.