MAP(6) MAP(6)
NAME
map - digitized map formats
DESCRIPTION
Files used by map(7) are a sequence of structures of the
form:
struct {
signed char patchlatitude;
signed char patchlongitude;
short n;
union {
struct {
short latitude;
short longitude;
} point[n];
struct {
short latitude;
short longitude;
struct {
signed char latdiff;
signed char londiff;
} point[-n];
} highres;
} segment;
};
where short stands for 16-bit integers and there is no pad-
ding within or between structs.
Fields `patchlatitude' and `patchlongitude' tell to what
10-degree by 10-degree patch of the earth's surface a seg-
ment belongs. Their values range from -9 to 8 and from -18
to 17, respectively, and indicate the coordinates of the
southeast corner of the patch in units of 10 degrees.
Each segment of |n| points is connected; consecutive seg-
ments are not necessarily related. Latitude and longitude
are measured in units of 0.0001 radian. If n is negative,
then differences to the first and succeeding points are mea-
sured in units of 0.00001 radian. Latitude is counted posi-
tive to the north and longitude positive to the west.
The patches are ordered lexicographically by `patchlatitude'
then `patchlongitude'. A printable index to the first seg-
ment of each patch in a file named data is kept in an asso-
ciated file named data.x. Each line of an index file con-
tains `patchlatitude,' `patchlongitude' and the byte posi-
tion of the patch in the map file. Both the map file and
the index file are ordered by patch latitude and longitude.
Page 1 Plan 9 (printed 1/9/26)
MAP(6) MAP(6)
Shorts are stored in little-endian order, low byte first,
regardless of computer architecture. To assure portability,
map accesses them bytewise.
SEE ALSO
map(7)
Page 2 Plan 9 (printed 1/9/26)