Global Index (short | long) | Local contents | Local Index (short | long)
hh = drawcoasts ( lev ) ;
function hh = drawcoasts ( lcst, lgrd, lbox, gridx, gridy ) ; script to overlay a rectangular coastline map on the graphics window. INPUT ARGUMENTS: lcst : linetype for coastlines (default is COASTTYPE,' ' = default) lgrd : linetype for gridlines (default is COASTGRID, ' ' = default) lbox : linetype for frame box (default: '-k', '' or 0 to skip) gridx : grid_spacing in x direction (default is GRDX_SPACING) gridy : grid_spacing in y direction (default is GRDY_SPACING) GLOBAL SETTINGS (most of which can be overridden by call arguments) FRAME : plotting boundaries (see also frame) COASTWIDTH : Coastline width COASTTYPE : coastline type, set to 0 or '' for no coast COASTGRID : grid line stype, set to 0 or '' for no gridline GRDX_SPACING: longitudinal grid spacing GRDY_SPACING: latitudinal grid spacing SEE ALSO : frame, polar_coasts
| This function calls | |
|---|---|
function hh = drawcoasts ( lev ) ;
%---------------------------------------------- Alexis Lau (May 1991)
% major modification for version 4.X Alexis Lau (July 1993)
% rewritten Alexis Lau (Feb 1994)
%
% Added "sort" to the yticks definition in the grid lines specification.
% MATLAB 5 needs the ticks to increase monotonically.
% Todd Mitchell, July 1997
%
% Same is true for the xticks, added sort(xtickts)
% Christian Bantzer, 10/3/97
global FRAME COASTWIDTH COASTTYPE COASTGRID GRDX_SPACING GRDY_SPACING
global USE_LANDMASK
global x_coasts y_coasts
% if USE_LANDMASK;
% landmask;
% return;
% end
% set parameters
if nargin < 1; lcst = ' '; end;
if nargin < 2; lgrd = ' '; end;
if nargin < 3; lbox = ' '; end
if nargin < 4; gridx = GRDX_SPACING; end
if nargin < 5; gridy = GRDY_SPACING; end
if strcmp(lcst,' '); lcst='-k'; end
if strcmp(lgrd,' '); lgrd=':k'; end
if strcmp(lbox,' '); lbox='-k'; end
%-------------------------------------------------------------------
% make sure plotting in the preset frame
% frame;
% map is superimposed, will not affect existing display
push_hold;
% frame box
xl=getm(gca,'maplonlimit'); yl=getm(gca,'maplatlimit');
% xl = FRAME(1:2); yl = FRAME(3:4);
x0=xl(1); x1=xl(2); y0=yl(1); y1=yl(2);
% if lbox; plot([x0 x0 x1 x1 x0],[y0 y1 y1 y0 y0],lbox); end;
% grid lines
% if ~USE_LANDMASK
% xticks = sort([ 0:-gridx:x0 gridx:gridx:x1 ]);
% yticks = sort( [ 0:-gridy:y0 gridy:gridy:y1 ] );
% manual_ticks('x',xticks,label_eastwest(xticks));
% manual_ticks('y',yticks,label_northsouth(yticks));
% end
% if lgrd
% vline(xticks,lgrd, FRAME(3:4));
% hline(yticks,lgrd);
% end;
% coastlines
% if lcst;
x = []; y = [];
nt1 = floor((x0+180)/360); nt2 = floor((x1+180-1.e-9)/360);
for it = nt1:nt2;
xtmp=x_coasts+it*360; ytmp=y_coasts;
% xy = find ( ~(isinrange(xtmp,xl) & isinrange(ytmp,yl)) );
% xtmp(xy)=nan*ones(size(xy)); ytmp(xy)=nan*ones(size(xy));
[tem1, tem2] = maptrimp(ytmp, xtmp, yl, xl);
x = [ x; nan; tem2 ]; y = [ y; nan; tem1 ];
end;
zdat = lev*ones(size(x)); zdat(isnan(x))=NaN;
h=patchm(y,x,-1000,0.3*[1 1 1]);% set(h,'linewidth',COASTWIDTH);
set(h, 'EdgeColor', [1 1 1]);
% end;
pop_hold;
if nargout==1; hh=h; end