Maple Maps
Created by Ross Taylor and Richard Baur Department of Chemical Engineering Clarkson University, Potsdam, New York 13699
and
John Oprea Department of Mathematics Cleveland State University Cleveland, Ohio 44115
There are hundreds of map projections that have been described in the cartographic literature. It is our objective here to describe Maple tools that can be used in their creation. For much more historical and/or mathematical background to the subject see, for example, J.P. Snyder (Flattening the Earth - Two Thousand Years of Map Projections, The University of Chicago Press, 1993), F. Pearson (Map Projections: Theory and Applications, CRC Press, 1990), D.H. Maling (Coordinate Systems and Map Projections, 2nd Edition, Pergamon Press, 1992), and L.M. Bugayevskiy and J.P. Snyder (Map Projections - A Reference Manual, Taylor and Francis, 1995).
Maple already contains functions to add (and use) new coordinate systems to Maple: the addcoordsand changecoordscommands. With these functions it is straighforward to create some of the simpler map projections (such as the Mercator and cylindrical equal area). However, addcoordsis unable to work with some of the more complicated projections. We have, therefore, created the Maps package which contains some new functions as well as slightly revised versions of addcoords, changecoordsand coordplotfrom the plotspackag. It is important to load the plotspackage (if needed for other reasons) before loading the Maps package. To load the Maps package we must include the path in the global variable libnameas shown below. Note that the file maple.lib must not be located in the existing lib directory.
> restart; libname:=`e:/earth`,libname;
> with(Maps);
addcoords- a modified version of Maple's own function for adding coordinate systems to Maple.
mapcoords- interface to addcoords.
changecoords- a modified version of Maple's own function for changing coordinate systems in Maple.
coordplot- a modified version of Maple's own function for plotting coordinate systems to Maple.
graticule- procedure for making grids for map projections.
removelines- procedure for eliminating lines that wrap around the edges of a plot.
makeprojections- converts data structures defining map projections to Maple coordinate systems.
distortion- command for creating images/maps that demonstrate the degree to which a projection distorts land/water bodies.
There are literally hundreds of map projections that have been described in the cartographic literature. The Maps package comes with a number of predefined projections that can be identified and constructed by makeprojections. A list of the available projections can be obtained by using the makeprojectionscommand as follows:
> makeprojections(`?`);
To add the coordinate system for any of these projections we invoke makeprojectionswith the name of the projection as the argument of the function. Some projections require other projections to be defined first. Thus, it is simplest to construct all of these coordinate systems by invoking makeprojectionswith no arguments as follows:
> makeprojections():
Warning, check parameter definitions r <> lasterror
shore- Maple table with each land or water body represented by a list of longitude/latitude coordinates in degrees. For example:
> shore[50];
There are 1867 such bodies with index numbers from 0 to 1866. The largest body has an index of 0 and represents the continuous coastline of Europe, Africa, and Asia. North and South America are shore[1]. Australia is shore[4. The major part of Great Britain is shore[10]. There are many islands and lakes with only four data points.
The data used here is from the the Global Self-consistant Hierarchical High-resolution Shorelines (GSHSS), Version 1.2 of P. Wessel and W.F. Smith (A global self-consistent, hierarchical, high-resolution shoreline database, J. Geophys. Res., 101, 8741-8743, 1966, www.soest.hawaii.edu/soest/gmt.html). The GSHSS collection comprises four data sets which differ in their resolution of the worlds coastlines. We use the crude data set which contains shoreline data for 1867 bodies of land/water at a resolution of approximately 25 km.
world- Maple table of plot structures containing equirectangular projections of the world. The plots differ by the number of included land/water bodies and whether or not a graticule (grid) is present. For example: world[nn]is a gridded map of the the nn largest land/water bodies. world[ng,nn]is the same map with no grid (ng). Allowed values of nnare 50, 200, and 1866.
changecoords- used for replotting maps in new coordinate systems. The map at the top of this page was created with the following command.
> changecoords(world[1866],`Lambert Conical Equal Area`);
>
Many more examples of many different map projections are shown elsewhere.
Cylindrical projections
Azimuthal projections
Pseudocylindrical projections
Projections of The National Geographic Society
Transverse projections
Hybrid Projections
Interrupted projections
Miscellaneous Projections - Pierce Quincuncial
More Miscellaneous Projections
Map Distortion
The Mathematics of Map Projections