;+ ; NAME: ; MAPTICK ; ; PURPOSE: ; This procedure draws tick-marks for map. ; ; CALLING SEQUENCE: ; MAPTICK, LIMIT, TEXTCOLOR ; ; INPUTS: ; LIMIT (Float Array(4)) Minlat, minlon, maxlat, maxlon. ; TEXTCOLOR (Long) Color of tick-marks. ; ; NOTE: ; Do not work well in global map - maplimit = [-90, 0, 90, 360]. The ; tick-marks for longitude will not be placed underneath map. ;- ;============================================================================= PRO ticklocation, lower, upper, starttick, endtick, tickinterval range = upper - lower CASE 1 OF range LE 25 : tickinterval = 5 range LE 50 : tickinterval = 10 range LE 100 : tickinterval = 20 range LE 180 : tickinterval = 30 range LE 300 : tickinterval = 60 ELSE : tickinterval = 90 ENDCASE starttick = CEIL(FLOAT(lower) / tickinterval) * tickinterval endtick = FLOOR(FLOAT(upper) / tickinterval) * tickinterval END ;============================================================================= PRO maptick, limit, textcolor, XSPACE = xspace IF N_ELEMENTS(xspace) EQ 0 THEN xspace = (limit(2) - limit(0)) * 0.07 ticklocation, limit(1), limit(3), startlon, endlon, loninterval ticklocation, limit(0), limit(2), startlat, endlat, latinterval ; Mark longitude on x-axis. xsym = [0, 0] & ysym = [-0.6, 0.4] USERSYM, xsym, ysym, COLOR = textcolor FOR i = startlon, endlon, loninterval DO BEGIN PLOTS, i, limit(0), PSYM = 8 CASE 1 OF (i EQ 0) OR ( i EQ 180) : str_i = STRTRIM(i, 1) (i LT 0) : str_i = STRTRIM(-i, 1) + 'W' (i GT 180) : str_i = STRTRIM(360-i, 1) + 'W' (i EQ 360) : str_i = '0' ELSE : str_i = STRTRIM(i, 1) + 'E' ENDCASE XYOUTS, i, limit(0)-xspace, str_i, ALIGNMENT = 0.5, COLOR = textcolor ENDFOR ; Mark latitude on y-axis. xsym = [-0.7, 0.2] & ysym = [0, 0] USERSYM, xsym, ysym, COLOR = textcolor FOR i = startlat, endlat, latinterval DO BEGIN PLOTS, limit(1), i, PSYM = 8 CASE 1 OF (i EQ 0) : str_i = 'EQ' (i LT 0) : str_i = STRTRIM(-i, 1) + 'S' ELSE : str_i = STRTRIM(i, 1) + 'N' ENDCASE XYOUTS, limit(1), i, str_i, ALIGNMENT = 1.5, COLOR = textcolor ENDFOR END