home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1993 #2
/
Image.iso
/
ham
/
aprs114.zip
/
README.MAP
< prev
next >
Wrap
Text File
|
1993-07-09
|
11KB
|
185 lines
HOW TO MAKE YOUR OWN MAPS (README.MAP)
MAP FILES: To see what map files are available to the system, use the alt-M
command. This command draws the boundaries of all map files and shows you the
areas covered by detail maps. 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. 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. As of this date, there are five starter maps with little
internal detail. These are for Texas, Illinois, California, The
Carolinas/Georgia, Ohio/Michigan/Ontario and Arkansas/Miss. See README2.MAP for
info on how to center, convert and spawn new maps.
Each Map file is put together using just a DOS text editor to list the ends of
line segments drawn point-to-point. 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 line segments. Choose a scale in pixels per
degree of longitude and latitude. 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.
To get down to the individual street level, I have used as many as 1200 pixels
per degree in order to resolve my neighborhood. In any map file, the first 8
lines define the origin and scale. Comment text is permitted on these lines
after the data value and a comma. See the example map below for Colorado.
MAPLIST.MAP: 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 preferred default LAT/LONG, Range and GMT offset for your
location. For example, Eastern Standard Time is -5. The program uses the
preferred LAT/LONG to center the first map each time the program starts up.
These values are overridden when a saved backup file is loaded using the CTRL-L.
So to force APRS to start up at your location, you can either change this
location in the MAPLIST file, or move the cursor to your location and use Ctrl-S
to save a backup file with you at the center, or if you are a registered user,
save a config file. To change the default in the MAPLIST file, change the first
four lines to your area as soon as you like. Keep a virgin copy of MAPLIST.map
so that if you mess up the file, you have a clean starting point again. The GMT
offset is only used to correct the raw time reveived from GPS/packet mobile
stations.
ADDING MAPS: To add a map to the system, look at the MAPLIST.map file. It
contains a list of all maps available. Add a line that contains your
map-name, LAT, LONG and the MAX Range. The LAT/LONG are in decimal degrees and
describe roughly the center of your map. The range scale tells the system to
load this map if the cursor ever falls within the boundaries of this map.
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 lines and points to your boarders 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 doesnt just stop but includes crude detail to all edges.
MAP HIERARCHY: It is important to place maps in decending order. The last map
in the list that meets the proper criteria 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.
MAP LINES: Each line segment begins with 0,0 followed by the line color and
line name, followed by pairs of x,y points using the scale you chose. Values
are positive to the right and down. APRS assumes the color red (4) is used for
secondary roads, bright red (12) for important highways, and green (10) for
interstates. I use light blue (11) for rivers and coast lines, orange (6) for
city/county lines, purple (13) for special event routes, etc. All of these
colors are recognized by the software for selectively turning on and off map
features using the designated ALT keys. The end of a line segment is simply the
0,0 which starts a new line. After the last line segment, there is a special
0,-1 which indicates the end of the line
information and the beginning of the Labels list.
MAP LABELS: Labels are drawn on maps at given lat/long coordinates. The
labels are all listed at the end of each map file. Each label also 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 just some
identifying text. 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 labels are plotted right justified. This means they will
be plotted to the left of the given LAT/LONG 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. The labels are
right justified so that they do not overprint a station callsign 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.
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 line segments 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 )
110.0, long of origin (in coordinate system)
60, pixls per deg Vert
39,Latitude of map center
105.5,Longitude of map center
200,MapRange
4,min rng (APRS will not zoom below this so integer math stays in range!)
This is a comment line which describes this format 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 (indicates end of map lines )
0,beginning of Labels List
Colorado,40,105,200
Denver,39,104,100
NOTE: The 7th line showing a minimum range is important. Starting with your
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.
For this reason, the program will never draw your map to a scale less than that
specified by the Minimum Range value on line 7. On my very large map of the US,
using 6 pixels per degree, the program will crash below 4 miles. If you are
using 60 pixels per degree, this limit can go down to .5 miles. And if you are
using 120 pixels per degree, a lower limit of .25 is probably safe which is the
lowest range scale permitted anyway.
MAPFIX.BAS: This QBasic program may be used to test your maps. It will quickly
display a single map and allows you to use the cursor and a special pointer to
identify individual map point coordinates. It also has a read out of the cursor
in decimal degrees which is handy for locating labels.
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 lines from one map to
cut and paste into another map.
FINAL COMMENTS: See the sketch above (not available in text file) which shows
how simple it is. Most maps have LAT/LONG lines around the boarders. 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 boarders of your original
map these values 120, 180, 240, 300, 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 roads and lines from one map to another without
mathimatical computations. For transfering objects from one map scale or origin
to another, Use the QBasic program called MAPCNVRT.BAS which will re-compute all
line points. Then use a text editor to re-do the center LAT/LONG and range
lines 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 boarders 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!
READ MORE ABOUT MAPS IN THE README2.MAP file!