README.MAP                 HOW TO MAKE YOUR OWN MAPS

Version 5.03a:  Now you can add symbols directly into MAPS!  Instead of a text
label, simply make the first three characters of the label be a $ followed by
the symbol character, followed by a hexidecimal number from 1 to F that
indicates the desired color for the symbol.  The remaining 8 characters can be
used for a conventional label at the same location.

NOTES WITH 4.03+  Jim Krist KG8GE has done a marvelous job of writing programs
to use AUTOCAD to make APRS maps.  He has done every street in the town of
MARION Ohio.  HIs program is named PLT2MAP and permits you to use a CAD plotter
to make AUTOCAD maps and then convert them to APRS.  Registered copies of his
software can be obtained for $25 from him at 315 Hane Ave, Marion, Ohi0, 43302.
I am not familiar with AUTOCAD, so if AUTOCAD is your bag, you might be
interested in his software.  Remember, however, that if you have a digitizer
tablet, you can draw APRS maps directly with the APRS MAPFIX.bas program.

VERSION 3.12: The MAPFIX.BAS program can now be used to generate a 64 mile APRS
map from USGS 2,000,000:1 CD ROM data.  This is NOT a trivial task and takes
at least 4 hours of manual manipulation to get the data reduced from the
initial 5 MBytes down to a 10K APRS map!  See README.CD!  These maps are NOT
street level (see ATLANTA, DALLAS, HOUSTON, or TAMPA/ORLANDO so far).  I will
do them if you can convince for about $90 each.  (My wife hates to see me at
the keyboard all night, hi hi).

VERSION 3.09: Since V309 placed all files into sub directories, the MAPLIST.map
name was changed to MAPLIST.APR, to keep it logically separate from the maps.

VERSION 3.07B distribution now includes the capability to use a DIGITIZER with
the MAPFIX.BAS program so that you can draw a map on-screen using a digitizer
tablet or drawing board!  If you have a digitizerr, you can ignore 90 percent
of this readme.map file.  But you should still read it completely to get a full
understanding of the structure and detail of APRS maps and how they work.

GENERAL CAUTION:  Many map makers have run up against the array limits in APRS
in surprise.  Here are the limits per map: 1000 map points, 99 Map labels, and
99 active maps.  If you approach these limits, begin a new map!  SECONDLY,
APRS maps are NOT intended, nor expected to fulfill all map requirements.  APRS
maps are only intended to provide the user with a visual reference to where
things are in a radio network.  Once you see where a station is, and you want
to see what street he is on, or what address block he is in, you should refer
to printed maps of your area.  Do not waste time trying to put too much detail
into APRS maps!  Similarly, don't try to label everything.  Too many labels
makes it hard to see callsigns.  I just got back (thanksgiving 93) from my
first long GPS mobile trip with a laptop, and can confirm that at 60 MPH and
30 second updates, I rarely ever went below the 8 mile scale and usually
stayed at the 16 mile scale to see what was comming ahead.  This confirms that
in most cases a straight line between intersections is just as effective as
a very detailed curvy map and only takes 2 points vice 20!  So concentrate on
plotting the intersections accurrately; if you want to come back later and add
more detail curves for artistic sake, that is now easy to do with the latest
version of my MAPFIX.bas program.

SUCCESS!!!  In Version 3.01, MAPFIX.bas can now ADD complete features while
online; and in version 3.05 you can do almost anything with a map file!  But
In 3.07B not only can you start a file without beginning with a text editor,
but you can also use a DIGITIZER to draw the map directly from a map!
Without a digitizer, you should probably always start with a text editor and
and a pencil to identify the point values to place roads geographically
correct.  But after the major roads and other geography is on the map, MAPFIX
makes it a snap to eyeball in smaller roads and to smooth out points,
or to add tiny jogs in the roads or shoreline.

NEW IN DISTRIBUTION 3.00:  Added a comment field for each map in MAPLIST.apr
file to help you keep track of what maps are what.  If you do not add a comment
you MUST add a COMMA on the end of the line as a null entry.  Also the
MAPFIX.bas program now has a routine to list MAPLIST.apr and to show all map
borders.  Both of these changes are incompatible with earlier versions.

NEW in DISTRIBUTION 2.13:  The format of the MAPLIST.apr file changed so
that you can SUPPRESS any map in the list.  This keeps the number of maps
below the maximum of 60 that APRS can handle at a time, but keeps the map in
the list for easy activation.  Just use an editor to put a (*) at the start
of a map you want to skip.

NEW IN DISTRIBUTION 2.11:  The MAPFIX.BAS program can now be used to ADD,
MOVE, and DELETE map points and also to Add map LABELS!  Also, Ken Swaggart,
W7KKE in Foster City, CA has written a QBasic program that takes map points
directly from a CALCOMP 4000 series plotter.  See README.PLT and his maps!
(NOTE, his program is probably obsolete now with 3.07B)
Lastly, I have renamed many maps so that all map names begin with the two-
letter state abbreviation so that they sort better alphabetically.

HOW TO MAKE APRS MAP FILES:   To see what maps are available to the system, use
alt-M.  This command draws the boundaries of all map files and shows you the
areas covered by detail maps.  The colors of these borders are proportional
to map size.  Some of these maps are very detail, and some are just "starter"
maps that I have made to give new users in those areas a basic map outline from
which to add their own detail.  If a map boarder is shown, but the map does not
appear, then the mapfile is not on your disk.  If the mapfile is there, but
its boarder does not show up, then it is not listed in the MAPLIST.apr file.
Since I live in Maryland, you will notice that we have a lot of detail maps
already put together for users in our area.  Notice how maps of finer detail
can exist within the same area. Zoom into my neighborhood at 3910N 07636W and
see my neighborhood detail using 1200 pixels per degree.  Also see some of the
San Francisco maps made by W7KKE.  He has used 2400 pix-per-deg on some maps.
I try to provide a starter maps for each region.  These region sized maps
should contain only statelines and interstates, or you will run out of room
(limit 1000 points and 80 labels per map)  See the section MORE ABOUT MAPS at
the end of this file for info on how to center, convert and spawn new maps.
Slowly other APRS users are beginning to produce maps.  Here are some good map
makers:

KA7UUS @ K7BUC.AZ      Tuscon         AZ
KD6MKS                 Silver Lake    CA
W7KKE  @ KA6EYH#nocal  San Francisco  CA wrote PLOTTER and GPS cmds
WA4MEJ                 Jaxonville     FL
KD4UYR                 Clearwater     FL
N4FOR                  Savannah       GA
KG0DW & N0YKX & KI0Q   IOWA           IA
KB5YRZ @ N5SSY#METLA   New Orleans    LA
KD1E   @ N8NNN.#SEMI   Michigan       MI
W8VPD                  Michigan UPPER MI
KB8JXO @ W8CQK.#CMH.OH Columbus       OH
W4NMK                  Black Mountain NC
N2FET                  New Jersey     NJ
KD1HA @ KA1RCI.RI      Rhode Island   RI (new england)
WB5DTW                 SanAntonio     TX
N3FKV                  Waco           TX
N4WJQ  @ WA4TFZ.VA     Charlottsville VA
W8KVK                  West Va        VA
W9LZQ                  Onalaska       WI
KU0G   @ KU0G#NWMO.MO  Kansas City    MO

BEGINNING A MAP FILE:  In any map file, the first 8 lines define the origin
and scale.  Comment text is permitted on these first 8 lines after the initial
data value and a comma.  See the example map below for Colorado.

BUILDING A MAP:  Map files are put together using a DOS editor to make a list
of points for APRS to use in drawing line segments.  Note that the coordinates
are listed as X,Y where X is horizontal and Y is vertical.  This is backwards
from the usual order that we list LAT (vert) and LONG (Horizontal), so be sure
to put the horizontal (X) value first. You can use any editor to prepare a map
file.  Simply use a chart that has lat/long references and select an origin well
beyond the upper left hand corner of the area you want to cover.  That point is
0,0 and all points are measured from there. (negative numbers are OK if you
later add points behind the origin, but the - is an extra character that slows
down file loading); similarly, an X value of 0 is not permitted since it is used
to indicate separations between the end of one feature and start of another.

MAP SCALE:  Next choose an appropriate scale in pixels-per-degree of longitude
and latitude for the area you want.  Since EGA graphics has a 350/640 pixel
resolution, I have found that 120 pixels per degree (2 pixels per  minute) is
excellent for state size maps.  I used 6 pixels per degree for the whole US,
but should have probably used 12 for better resolution.  By keeping the scale
number an integer multiple of 60, you avoid any future roundoff and truncation
errors due to ZOOM functions and when converting points from one map scale to
another.  I have used 6,12,24,30,60,120,300,600,1200, etc.  It takes 1200 pix
or more in order to resolve city streets.  If you use too fine of a scale
then you are limited as to how far the map can extend.  Points with values
greater that 999 should be minimized and no values should be bigger than about
1100 or there is a chance APRS will crash on very zoomed-in maps.  The further
you zoom in, the larger the values become until you get an overflow error.

MAP RANGE:  Since APRS handles range scales as integer powers of 2, I suggest
making most maps slightly larger than any given power of 2.  This is so that
you can place the cursor in the center of the map, and pretty much see all of
it at once.  If you make the size of your map just under a power of 2, then
you can never see the whole map at that range.  Going down a scale permits
you to see all of the map, but only a smaller portion of it at a time.  To
make it easy to hit the center of a map with the cursor, I usually make my
maps with a range scale about 10% larger than an even power of 2.

MAPLIST.apr:   This file contains the list of all maps available to the APRS
program and decides which map is loaded for every location of the cursor.   It
also contains the default LAT/LONG and Range for the first map loaded.  The
program uses the default LAT/LON to center the first map each time the program
starts up (on unregistered users).  This map is distributed as the whole USA
map since it is also good for use on HF. These values are NOT used when a saved
backup file is loaded using the CTRL-L, or when a registered user has saved
his default values in his APRSconfig file.  So to force APRS to start up at
your location, you can either  1) change this location in the MAPLIST file,
2) move the cursor to your location and use Ctrl-S to save a backup file with
you at the center, or 3) if you are a registered user, save a config file.  To
change the default in the MAPLIST file, change the first three lines to your
area as soon as you like.  Keep a virgin copy of MAPLIST.apr so that if you
mess up the file, you have a clean starting point again.  As of version 2.05,
you can instantly zoom out to the default map (the USA) using the Shift-End
key.  This is useful for doing a quick glance at HF mobiles that might be
comming in through a GATEway!

ADDING MAPS:   To add a map to the system, look at the MAPLIST.apr file.  It
contains a list of all maps available.  Add a line that contains the MAPname,
LAT, LONG, MAPrange, and comments.  The LAT/LONG are in decimal degrees and
describe roughly the center of your map.  The MAPrange tells the system to
load this map if the cursor ever falls within this range of the center.
Actually it is a little more complicated.  The given map will not be used until
the cursor location plus the current range scale in all directions fully falls
within the boundaries.  This keeps you from being on a postage stamp sized map
of someone's neighborhood when you are zoomed out to see the whole US!  HINT -
so that your detail map seems to blend in with the next larger map, add enough
rough features and points to your borders to surround your fine detail area
with crude detail out to MAX Range beyond.  Then when the screen centers on a
point near the edge of your fine detail, your map doesn't just stop but
includes crude detail to all edges.  Currently APRS can only use 60 maps in
MAPLIST.apr.  As of version 2.13 you can place a (*) at the beginning of a line
to tell APRS to skip that map.  This way, you can make room for new maps, but
keep old ones handy for later use...  Also you can add some comment lines at
the designated space in the file (beginning with *) so that you can leave notes
as to what that particular file represents.  As of version 3.00, there is also
a comment field for each map.  If you have no comments, use a comma to end the
line.

MAP HIERARCHY:  It is important to place maps in decending order.  The last map
in the list that shows the given cursor position will be used.  If a larger map
covering the same area as a smaller map follows it later in the list, then the
larger map will always be found last and will be used, instead of the desired
smaller map.  If maps overlap in your area, hit shift-Home to temporarly see
the map underneath (ver 2.05 and later).  Using this feature, you could make
two maps of the same area and scale.  On one you could put rivers and roads,
on the other you could put counties, property lines, and grids.  Then by
listing the gridded map first in the MAPLIST.apr file, it would always be
superceeded by the road map, but could be summoned up by hitting shift-home!

MAP FEATURES:  APRS displays all map features by drawing lines from point-to-
point.  Each feature begins with 0,0 followed by the line color and a name for
the feature, followed by pairs of x,y points using the scale you chose.  The
name is not used, but is useful for identifying features during editing.  In
APRS, there is no limit on the number of features, just on the total number of
points used to define them (1000).  Since the MAPFIX.BAS program does, however,
does display these feature names during on-line editing, there is a limit of
99 in the array used to hold these names temporarily.  The POINT values
are positive to the right and down.  The end of a feature is simply the 0,0
which starts a new one.  After the last feature, there is a special 0,-1 which
indicates the end of all feature information and the beginning of the labels
list.

MAP COLORS:  APRS recognizes certain map colors for turning on and off certain
map features.  For this reason it is a good idea to use my standard colors.  I
made most map features using the brighter colors since they are easier to see
on a color monitor outdoors.  In recent versions, you can change the background
color with the Tint command under Features, and in version 3.00 the map colors
will be dimmed when you ask for the Map Borders display (alt-M).  I will add
a DIM command in the next version, so you dim the colors if you like.  Here are
my standards, the * indicates if they are uniquely recognized by the software:

 0 - Black (normal background)       8 - NOT USED
 1 - dim blue                        9 - Bright Blue
 2 - dim green                     *10 - Bright Green (Interstates)
 3 - dim cyan                      *11 - Bright Cyan  (waterways)
 4 - deep red (state roads)        *12 - Bright Red   (major roads)
 5 - dim violet                     13 - Bright Violet(special routes/events)
*6 - dim orange (state/county lines 14 - Bright Yellow (Cities,airports)
*7 - gray     (back roads)          15 - Bright White  (Labels and CALLS)

MAP LABELS:   Labels are drawn on maps at given lat/long coordinates.  The
labels are listed at the end of each map (up to 80).  Each label has a range
scale associated with it, so that not all labels are visible at all  range
scales.  As you zoom in to finer and finer detail, you can make more  labels
appear.  The first line in the labels list has a leading 0 and then any
any comments.   From then on to the end of the file, each line  consists of
4 fields separated by commas.  First is the label text (up to 12  characters
long) followed by the LAT, LONG and RANGE.  LAT and LONG must be  given in
decimal degrees.  The MAPFIX.bas program displays the location of the cursor
in decimal degrees for this purpose.  Labels are plotted right justified.  This
means they will be plotted to the left of the given point.  A way to visualize
how a label will appear is to assume the label has a following  period (.) and
that the period is the location where the label will be plotted.  Labels are
right justified so that they do not overprint station callsigns which are all
left justified.   Since absolute LAT/LONG reference is used, labels can be
transferred with out any change to any scale map.  You may decide to change the
range size so that the label shows up sooner or later on different maps.  As
of Version 5.03a, you can now add symbols directly into MAPS!  Instead of a text
label, simply make the first three characters of the label be a $ followed by
the symbol character, followed by a hexidecimal number from 1 to F that
indicates the desired color for the symbol.  The remaining 8 characters can be
used for a conventional label at the same location.

                             
EXAMPLE:  The following map file constitutes a trivial state map of Colorado.
The first 8 lines are the fixed format lines which define the origin and scale.
Next are the features for the state borders and for Denver.  Finally are
the map labels.  To see how this map looks, move the cursor to the center of
Colorado on the US map and page-down to the 256 mile scale.

  41.0, latitude origin   (equates to 0,0 in)  [Notice how comments can be on]
  110.0, long of origin   (coordinate system)  [the ends of these first lines]
  60, pixels per deg of lat/long               [and 1st line of each new line]
  39,LAT of map center    (For ur reference only. Value in MAPLIST.apr is what)
  105.5,LON of map center (is actually used as the center and Range for maps  )
  200,MapRange
  4,minimum range         (APRS does not use this, it now computes min range)
  * This single comment line can contain anything... more or less
  0,0
  6,Colorado state line
  59,0
  59,240
  479,240
  479,0
  59,0
  0,0
  14,Denver city limits
  300,68
  289,77
  300,85
  311,77
  300,68
  0,-1                            (0,-1 indicates end of map features)
  0,Comments or notes... etc      (   note that the 0, is required   )
  Colorado,40,105,200
  Denver,39,104,100

NOTE:  The 7th line showing a min range used to be important.  Starting with
a full scale map, each time you page-down (zoom in) you are doubling the value
of each pixel lat/long value.  If any of these numbers ever exceed the maximum
permissible value of 2 byte integer math (32,000) then the program will crash.
After version 2.04, APRS assumes that there will not be any data points larger
than about 1100 and will not draw your map to a scale that would multiply this
number too big.  This is why APRS will not draw the USA map smaller than about
32 miles.  Six pixels per degree for the USA map was a poor choice since the
largest point value is still under 400 or so.  So I could have used 12 per
degree and still been below 999.  This would have given me better resolution
and would have permitted zooming in to 16 miles.

MAPFIX.BAS:  This QBasic program may be used to test and edit your maps.  It
helps you to quickly display single maps and to use the cursor to identify
individual map point coordinates.  It also has a readout of the cursor in
decimal degrees which is required for locating labels and map Centers.  Prior
to APRS distribution 2.10 this program only allowed you to look at your maps.
Now you can add, move and delete map points and save a new file.  With 3.01,
you can even add new features!  In 3.05 you can also delete features and
points.  With 2.13 MAPFIX.bas can also add labels, and with 3.00, it can list
maps in the MAPLIST.apr file and also show all map borders.  3.07 allows you to
overlay a GPS track history file over the map you are drawing so you can make
your roads as accurate as GPS!  3.07P ADDS A DIGITIZER INTERFACE SO THAT
YOU CAN DIRECTLY DIGITIZE ANY MAP!

**** AND NOW IN VERSION 3.12 YOU CAN GENERATE A 64 MILE APRS MAP DIRECTLY FROM
THE USGS 2,000,000:1 CD ROM.  BUT IT STILL TAKES 4+ hours to manually reduce
the number of points from over 5 MBytes to a 10K APRS size!


MAPCNVRT.BAS:  This QBasic progarm may be used to convert any one map to a
different LAT/LONG origin or different Pixels-per-degree resolution.  Use it in
conjunction with the QBasic editor for piecing together features from one map
to cut and paste into another map.  Say you are building a fine detail map, but
want to use the statelines and interstates from a larger map.  Just use the
editor to remove all unnecessary points from the big map, keeping all the
features that you want to retain and move to your new map.  Then save it with
a TEMPORARY name and then run it through MAPCNVRT.BAS to re-compute all of the
map points.  Then use this new file as the beginning of your new map.  You can
also use the point-add-delete function in MAPFIX.bas to fine tune these points.

TECHNIQUE:  See the sketch above (not available in text file) which shows
how simple it is.  Most maps have LAT/LONG lines around the borders.  If you
are using 120 pixels per degree for a state size map, then each LAT/LONG line
corresponds to a multiple of 120.  Simply mark on the borders of your original
map these values 120, 240, 360, etc.  Then make a smaller template which
matches the size of one square of LAT/LONG lines.  Draw a finer grid of lines
every 10 pixels on the template.  Then to locate the coordinates of any point
on the map, simply orient the template with a major LAT/LONG square, and
interpolate the point within the grid on the template which represents a 10x10
pixel area.  Actually, if we all use 120 pixels per degree for state size maps,
then it is easy to transfer features from one map to another without complex
mathimatical computations.  For transfering features from one map scale or
origin to another, Use the QBasic program called MAPCNVRT.BAS which will
re-compute all point values.  Then use a text editor to re-do the LAT/LONG
and range and to cut and paste the necessary map labels on the end.

CAUTION: since many highway maps are Lambert Conformal instead of Mercator
projections, use the center square in your map for making the template to
minimize errors.  Further, be careful of highway maps that only have tick marks
along the borders for LAT/LONG. If the map is not a Mercator projection, then
you cannot just draw a straight line from left to right connecting latitude
marks.  Longitude lines are straight on a Lambert Conformal, but not latitude
lines!

SPECIAL EVENTS:  Conversly, absolute accurracy is only important if there will
ever be a GPS or LORAN-C station involved in your net.  A map with little
relationship to true LAT/LONG is perfectly useable in all APRS applications
as long as all stations in the net are using the same map and no one is using
GPS.  So feel free to draw quick simple maps for special events even as small
as a few square blocks without worrying about exact LAT/LONG.  Objects on one
station screen will still be in the same location on all other screens!  Use
the Chess board example at 25N 90W to play chess on the air!  But GPS is
comming, be prepared!  (PACCOM TNC's now come with a GPS interface built-in!)

                          MORE ABOUT MAPS PART 2

FLASH!!  With the advent of low cost GPS, most mapmakers are now beginning to
add LAT/LONG to most new maps.  Our 7-11 convenience store maps now even
include map booklets which have a LAT/LONG grid on every page!  The grid lines
are 5 minutes apart which is exactly 10 pixels if you use
120 pixels per degree as I do for most APRS state maps.  This means that each
grid square is a 10x10 pixel area from which map coordinates can be typed
directly into a text editor without any drafting aids!  Simply note the grid
coordinates of the corner of each page in the book and start entering points!
Rumor has it that the comparable convenience map maker on the west coast is
also now making map books with LAT/LONG grids.

NOTES ABOUT STARTER MAPS:  The starter maps that I have provided use a  scale
of 120 pixels per degree and have an origin that is suitable for about a 400
mile square area.  This area usually covers from one to several states and is
good for area maps.  With the whole map visible, one pixel represents abt .25
mile resolution.  The first step in customizing maps to your area is to take
the starter map and start adding roads and features in your area.  Since all
maps in the APRS system are limited to a maximum of 1000 data points, however,
these large area starter maps can usually contain only the interstate roads,
the state lines, and major rivers and 4-lane highways.  This is perfect for
most VHF applications.  But as more and more people add detail closer to home,
smaller maps need to be "spawned" off to make room for more detail.  The
following sections describe how to spawn maps and convert points from one map
to another.

MAP CENTERING:  Most of you do not live in the middle of a starter map and so
your detail will be off center.  To make a more pleasant transition as you
zoom into your area using APRS, you may want to simply change the center and
range of the starter map to be centered on your area with a range suitable to
the amount of detail you have added.  To do this, simply edit the line for your
starter map in the MAPLIST.apr file to your desired center and range.  Keep
the original starter map for others to use by adding a (*) to cause APRS to
skip it when loading the MAPLIST.apr file.  As the number of points in your
map grows, you may need to throw out some of the points which are beyond your
area of interest.  Use MAPFIX.bas to delete points.  See the next section on
map spawning.

MAP SPAWNING:  In the figure above, map A is the original starter map with the
origin at O.  Using 120 pixels-per-degree resolution, all points within a
square area 8 degrees on a side (about 400 miles) can be resolved with pairs
of 3 digit numbers.  As the number of points in such a regional area map fills
up towards the 1000 limit, it is necessary to start new smaller area maps such
as B, C, and D above to permit finer detail to be added.  Spawning a new map
is easy.  Simply use a text editor to create a new mapfile and copy all of the
features out of the original map that fit within the new map area. Then save
this new map and add its name to the MAPLIST.apr file giving a center and range
appropriate to the new smaller area covered.  Now add new roads and features in
the area of interest.  Notice that since the same origin and 120 pixel-per-
degree scale are still used among all maps spawned from the same starter map,
features and points can be moved among those maps by simply cut-and-paste.

MAP CONVERSION:  When it is desired to move features and points from one map to
another map which has a different origin (X) or resolution, then use the
MAPCNVRT.BAS program.  First spawn a new map which contains all of the points
that are to be moved.  Then run the MAPCNVRT program giving the new origin and
resolution.  The resulting MAPTEMP.MAP file contains a copy of those features
and points ready to be cut-and-pasted into the new map (Y) with the new origin
(X) and resolution.  This process is useful when creating finer detail maps of
an existing area and you want to transfer the interstates and larger map
features down to the finer detail map without having to re-do the data points.
You can use MAPFIX.bas to add new points to a road when building a finer detail
map, or to delete points when building a larger map where extra fine detail
points are not needed.

