www.gusucode.com > EasyKrig_V3.0工具箱matlab源码程序 > EasyKrig_V3.0/bin/mapax.m

    function []=mapax(nminlong,ndiglong,nminlat,ndiglat,hdl,axis_opt);
% function []=mapax(nminlong,ndiglong,nminlat,ndiglat,hdl,axis_opt);
%   puts degrees and minutes on map axes instead of decimal degrees
%
%   Usage: mapax(nnminlong,ndiglong,nminlat,ndiglat);
%
%   Inputs:
%          nminlon  = minutes of spacing between longitude labels
%          ndiglong = number of decimal places for longitude minute label
%
%          nminlon  = minutes of spacing between latitude labels
%          ndiglong = number of decimal places for latitude minute label
%
% Example:  mapax(15,1,20,0);   
%               labels lon every 15 minutes with 1 decimal place (eg 70 40.1')
%           and labels lat every 20 minutes with no decimal place (eg 42 20')
%
% Version 1.0 Rocky Geyer  (rgeyer@whoi.edu)
% Version 1.1 J. List (6/5/95) had apparent bug with
%  ndigit being set to 0: routine degmins blows up.
%  Fixed by adding arguments specifying number of decimal
%  digits (can vary from 0 to 2)
%  Modified by D. Chu 7-16-99, add optional graphic handle 
%  Modified by D. Chu 9-3-99,  add axis label option
%		axis_opt = 1		x-axis label only
%					  2		y-axis label only
%					  3		both axes labels

if nargin < 5
  hdl=gca;
end
EPS=1.e-4;
nfaclong=60/nminlong;
nfaclat=60/nminlat;

if axis_opt ~= 2

if nminlong>0;
xlim=get(hdl,'xlim');
xlim(1)=floor(xlim(1)*nfaclong)/nfaclong;
xtick=xlim(1):1/nfaclong:xlim(2);
set(hdl,'xtick',xtick);
xtick0=str2num(get(hdl,'xticklabel'));	% added to avoid inconsistency between
													% xticks and xticklabels, D. Chu, 9-3-99
%% added by D. Chu on 5-11-2001 to correct the inconsistency between
%% the number of xtick and the number of xticklab
for i=1:length(xtick0)
  indx=find(abs(xtick-xtick0(i)) < EPS);
  xtick_indx(i)=indx;
end
set(hdl,'xtick',xtick(xtick_indx))

% modified 6/5/95 J.List:
xticklab=degmins(-xtick0,ndiglong);
set(hdl,'xticklabel',xticklab);
end;

end

if axis_opt ~= 1
if nminlat>0;
ylim=get(hdl,'ylim');
ylim(1)=floor(ylim(1)*nfaclat)/nfaclat;
ytick=ylim(1):1/nfaclat:ylim(2);
set(hdl,'ytick',ytick);
ytick0=str2num(get(hdl,'yticklabel'));			% added to avoid inconsistency between
															% yticks and yticklabels, D. Chu, 9-3-99
%% added by D. Chu on 5-11-2001 to correct the inconsistency between
%% the number of xtick and the number of xticklab
for i=1:length(ytick0)
  indx=find( abs(ytick - ytick0(i)) < EPS);
  ytick_indx(i)=indx;
end
set(hdl,'ytick',ytick(ytick_indx))

% modified 6/5/95 J.List:
yticklab=degmins(-ytick0,ndiglat);
set(hdl,'yticklabel',yticklab,'fontsize',10);
end;

end