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)