&rem DRAWGRID.SML &rem **** draw coordinate grid in ARCPLOTW **************************** &rem Original version: 9/6/94 mtc &rem Revised to handle negative coordinates: 2/1/98 mtc &goto usage &if &eq "x%-1" "x/?" &goto *FALSE0000* &if &NE "x%-1" "x" &sv -1 # &LABEL *FALSE0000* &goto *TRUE_0001* &if &EQ "x%-2" "x" &goto *FALSE0001* &if &NE "x%-2" "x#" &LABEL *TRUE_0001* &sv -2 0 &LABEL *FALSE0001* &goto *TRUE_0002* &if &EQ "x%-3" "x" &goto *FALSE0002* &if &NE "x%-3" "x#" &LABEL *TRUE_0002* &sv -3 0.08 &LABEL *FALSE0002* &goto *FALSE0003* &if &NE "x%-4" "x" &sv -4 # &LABEL *FALSE0003* SHOW MAPEXTENT -11 -12 -13 -14 &cv -15 %-13 - %-11 &cv -16 %-14 - %-12 &rem **** if interval is not specified then calculate default ********* &goto *FALSE0004* &if &NE "x%-1" "x#" &rem **** find shortest mapextent axis ***************************** &goto *FALSE0005* &if &NE %<%-15 max %-16> %-16 &sv -8 %-15 &goto *END__0005* &LABEL *FALSE0005* &sv -8 %-16 &LABEL *END__0005* &rem **** find "scientific notation" ******************************* &cv -7 ( ( %-8 ln ) / ( 10 ln ) ) int &cv -6 10 ** ( ( ( %-8 ln ) / ( 10 ln ) ) - %-7 ) &rem **** set interval ********************************************* &goto *FALSE0007* &if &NR %-6 0 1.5 &cv -1 0.25 * ( 10 ** %-7 ) &goto *END__0007* &LABEL *FALSE0007* &goto *FALSE0008* &if &NR %-6 1.5 3.0 &cv -1 0.50 * ( 10 ** %-7 ) &goto *END__0007* &LABEL *FALSE0008* &goto *FALSE0009* &if &NR %-6 3.0 4.5 &cv -1 0.75 * ( 10 ** %-7 ) &goto *END__0007* &LABEL *FALSE0009* &goto *FALSE0010* &if &NR %-6 4.5 6.0 &cv -1 1.00 * ( 10 ** %-7 ) &goto *END__0007* &LABEL *FALSE0010* &goto *FALSE0011* &if &NR %-6 6.0 7.5 &cv -1 1.25 * ( 10 ** %-7 ) &goto *END__0007* &LABEL *FALSE0011* &cv -1 1.50 * ( 10 ** %-7 ) &LABEL *END__0007* &type "Grid Interval = %-1" &LABEL *FALSE0004* &rem **** set default text offset ************************************* &goto *FALSE0013* &if &NE "x%-4" "x#" &cv -4 %-1 / 50 &LABEL *FALSE0013* &rem **** find first gridline locations within mapextent ************** &cv -17 %-11 + ( %-1 / 10 ) &cv -18 %-12 + ( %-1 / 10 ) &cv -19 %-13 - ( %-1 / 10 ) &cv -20 %-14 - ( %-1 / 10 ) &goto *FALSE0014* &if &NE %<%-17 min 0> 0 &cv -9 %-17 - ( %-17 mod %-1 ) + %-1 &goto *END__0014* &LABEL *FALSE0014* &cv -9 %-17 + ( %-17 abs mod %-1 ) &LABEL *END__0014* &goto *FALSE0016* &if &NE %<%-18 min 0> 0 &cv -10 %-18 - ( %-18 mod %-1 ) + %-1 &goto *END__0016* &LABEL *FALSE0016* &cv -10 %-18 + ( %-18 abs mod %-1 ) &LABEL *END__0016* &rem **** draw and annotate grid lines ******************************** LINESET COLOR255.LIN LINESYMBOL 1 TEXTSET TRUETYPE.TXT TEXTSYMBOL 31 TEXTSIZE %-3 UNITS MAP &sv -5 %-9 &LABEL *WHILE0018* &goto *END__0018* &if &NR %-5 %-17 %-19 LINE %-5 %-12 %-5 %-14 TEXTANGLE 90 MOVE %<%-5 - %-4> %<%-12 + %-4> TEXT %-5 &cv -5 %-5 + %-1 &goback *WHILE0018* &LABEL *END__0018* &sv -5 %-10 &LABEL *WHILE0019* &goto *END__0019* &if &NR %-5 %-18 %-20 LINE %-11 %-5 %-13 %-5 TEXTANGLE 0 MOVE %<%-11 + %-4> %<%-5 + %-4> TEXT %<%-5 + %-2> &cv -5 %-5 + %-1 &goback *WHILE0019* &LABEL *END__0019* &return &label usage &type "Usage: &r DRAWGRID {interval} {yshift} {tsize} {offset}" &type " " &type " interval = distance in map units between grid lines" &type " (default is calculated)" &type " yshift = number to be added to printed y coordinates" &type " (default = 0)" &type " tsize = text size" &type " (default = 0.08)" &type " offset = text offset" &type " (default = interval / 50)" &return &rem ******************************************************************