glenda.party
term% ls -F
term% pwd
$home/manuals/unix_v8/3/map
term% cat index.txt
MAP(3X)                                                                MAP(3X)



NAME
       orient, normalize - map projections

SYNOPSIS
       orient(lat, lon, rot)
       float lat, lon, rot;

       struct place {
            float latrad, latsin, latcos;
            float lonrad, lonsin, loncos;
       };

       normalize(p)
       struct place *p;

       int (*projection())()

       int project(p, xptr, yptr)
       struct place p;
       float *xptr, *yptr;

DESCRIPTION
       These  functions are loaded with ld(1) option -lmap.  Most of them cal‐
       culate maps for a spherical earth.  Each map projection is available in
       one standard form, into which data must be normalized for transverse or
       nonpolar projections.  The projection is specified by invoking  one  of
       the  following functions, known collectively as projection.  Each func‐
       tion returns the name project of a function that  will  do  the  actual
       work of calculating coordinates, or 0 if the required projection is not
       available.  The short summaries of properties pertain to standard  maps
       of the earth in standard orientation.

       Equatorial  projections  centered  on the Prime Meridian (longitude 0).
       Parallels are straight horizontal lines.

              mercator()  equally  spaced   straight   meridians,   conformal,
              straight compass courses
              sinusoidal() equally spaced parallels, equal-area
              cylequalarea(lat0)  equally  spaced  straight  meridians, equal-
              area, true scale on lat0
              cylindrical() central projection on tangent cylinder
              rectangular() equally spaced straight parallels and meridians
              mollweide() (homalographic) equal-area, hemisphere is a circle

       Azimuthal projections centered on the North Pole.  Parallels  are  con‐
       centric circles.  Meridians are equally spaced radial lines.

              azequidistant()  equally  spaced  parallels, true distances from
              pole
              azequalarea() equal-area
              gnomonic() central projection on tangent plane,  straight  great
              circles
              perspective(dist) viewed dist earth radii from center of earth
              orthographic() viewed from infinity
              stereographic() conformal, viewed from opposite pole
              laue() radius = tan(2×colatitude), used in xray crystallography

       Polar  conic projections symmetric about the Prime Meridian.  Parallels
       are segments of concentric circles.  Except in  the  Bonne  projection,
       meridians are equally spaced radial lines orthogonal to the parallels.

              conic(lat0) central projection on cone tangent at lat0
              bonne(lat0)  equally spaced parallels, equal-area, parallel lat0
              developed from tangent cone
              lambert(lat0,lat1) conformal, true scale on lat0 and lat1
              albers(lat0,lat1) equal-area, true scale on lat0 and lat1

       Projections with bilateral symmetry about the Prime  Meridian  and  the
       equator.

              polyconic()  parallels  developed  from  tangent cones uniformly
              distributed along Prime Meridian
              aitoff() equal-area projection of  globe  onto  2-to-1  ellipse,
              based on azimuthal equal area projection
              gilbert() conformal, maps whole sphere into a circle
              bicentric(lon0)  points plotted at true azimuth from two centers
              on the equator at longitudes ±lon0, great circles  are  straight
              lines (a stretched gnomonic projection)
              elliptic(lon0) points are plotted at true distance from two cen‐
              ters on the equator at longitude ±lon0

       Doubly periodic projections.

              guyou() conformal, W and E hemispheres are square
              square() conformal, world is square with Poles at diagonally op‐
              posite corners
              tetra() conformal map onto regular tetrahedron with an edge tan‐
              gent to the Prime Meridian at the  South  Pole,  developed  into
              equilateral triangle
              hex() conformal map onto a hexagon centered on North Pole, N and
              S hemispheres are equilateral triangles

       Miscellaneous.

              mecca(lat0) equally spaced  vertical  meridians,  straight  line
              from  any  point to `Mecca' (lat0 on the Prime Meridian) has the
              true bearing of Mecca

       Maps based on the spheroid.  Of geodetic quality, these projections  do
       not  make sense for tilted orientations (see below).  For descriptions,
       see corresponding maps above.

              sp_mercator()
              sp_albers(lat0,lat1)

       The project functions return a value 1 for a good point, 0 for a  point
       on  a  wrong  sheet (for example the back of the world in a perspective
       projection), and -1 for a point that is deemed unplottable.

       Each standard projection is displayed with the Prime Meridian  being  a
       straight  vertical  line,  along which North is up.  The orientation of
       nonstandard projections is specified by orient.  Imagine a  transparent
       gridded  sphere  around  the  globe.   First turn the overlay about the
       North Pole so that the Prime Meridian (longitude 0) of the overlay  co‐
       incides  with  meridian  lon on the globe.  Then tilt the North Pole of
       the overlay along its Prime Meridian to latitude lat on the globe.  Fi‐
       nally  again  turn the overlay about its `North Pole' so that its Prime
       Meridian coincides with the previous position of meridian rot.  Project
       the  desired  map  in the standard form appropriate to the overlay, but
       presenting information from the underlying globe.

       Normalize converts latitude-longitude coordinates on the globe to coor‐
       dinates  on  the  overlaid  grid.   The coordinates and their sines and
       cosines are input to normalize in a structure pointed to by p.   Trans‐
       formed coordinates and their sines and cosines are returned in the same
       structure.

       The project functions convert normalized coordinates in  the  structure
       pointed to by p to x-y coordinates for the desired map.  Scaling may be
       determined from the x-y coordinates of selected points.

       Latitudes and longitudes are measured in degrees for ease of specifica‐
       tion  for orient and projection, but in radians for ease of calculation
       for normalize and project.  In either case latitude is  measured  posi‐
       tive  north  of  the equator, and longitude positive west of Greenwich.
       Radian longitude should be limited to the range -pi <= lon < pi.

SEE ALSO
       map(7), map(5), plot(3)



                                     local                             MAP(3X)