• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab 画地图时搞定经纬度注释 函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、全代码

function varargout = getxy(varargin)
%% 此函数用来搞定画地图时,经纬度坐标注释
% 输入:
%   XArray:经度数组
%   YArray:纬度数组
%   d:     显示几个数
% 输出:
%   x:     经度数组,数字
%   x1:    经度数组,字符
%   y:     纬度数组,数字
%   y1:    纬度数组,字符
%   ex:    经纬度极值:经大小,纬大小
% 使用示例:
% 	[x,x1,y,y1]=getxy(XArray,YArray,d);
%   [x,x1,y,y1]=getxy(XArray,YArray);
%   [x,x1,y,y1,ex]=getxy(XArray,YArray);
%   XArray,YArray 东正西负,北正南负
%-------------------------------------------------------------------
    %%%%    Authors:   Bill O\'Hanlon
    %%%%    EMAIL:     [email protected]
    %%%%    DATE:      24-08-2020
%% 输入判断
if nargin==2
    XArray=varargin{1};
    YArray=varargin{2};
    d=5;
elseif nargin==3
    XArray=varargin{1};
    YArray=varargin{2};
    d=varargin{3};
else
    disp(\'输入参数过多或过少\');
    return;
end   
%% 求极值,并划分
Xmax=max(XArray);
Xmin=min(XArray);
Ymax=max(YArray);
Ymin=min(YArray);
extreme=zeros(4,1); %极值数组,存放极大极小值
Xmax=ceil(Xmax);
Ymax=ceil(Ymax);
Xmin=floor(Xmin);
Ymin=floor(Ymin);

extreme(1)=Xmax;
extreme(2)=Ymax;
extreme(3)=Xmin;
extreme(4)=Ymin;
detX=Xmax-Xmin;
detY=Ymax-Ymin;
dX=ceil(detX/d);
dY=ceil(detY/d);
x=Xmin+dX:dX:Xmax;
y=Ymin+dY:dY:Ymax;
%% 将划分好的转化为字符,并加°和S/N/W/E
x1=sprintfc(\'%g\',x);%转成字符串数组
y1=sprintfc(\'%g\',y);%转成字符串数组
n1=size(x1,2);n2=size(y1,2);
for i=1:n1
    if x(i)>=0
        x1{1,i}=[x1{1,i},\'°E\'];
    else
        x1{1,i}=x1{1,i}(2:end);
        x1{1,i}=[x1{1,i},\'°W\'];
    end
end
for i=1:n2
    if y(i)>=0
        y1{1,i}=[y1{1,i},\'°N\'];
    else
        y1{1,i}=y1{1,i}(2:end);
        y1{1,i}=[y1{1,i},\'°S\'];
    end
end
varargout{1}=x;
varargout{2}=x1;
varargout{3}=y;
varargout{4}=y1;
if nargout==5
    varargout{5}=extreme;
end
end

2、调用

subplot(121);
% 下面搞定横纵坐标注释
XArray=[P2(:).X];%所有多边形的经度
YArray=[P2(:).Y];%%所有多边形的纬度
[x,x1,y,y1]=getxy(XArray,YArray);
disp(\'drawing...\');
mapshow(P2,\'FaceColor\',\'w\');
mapshow(sheng,\'FaceColor\',\'r\');
set(gca,\'XTick\',x,\'XTicklabel\',x1);   %设置x,y轴
set(gca,\'YTick\',y,\'YTicklabel\',y1);
box on;
title([str \'的位置\']);
axis equal

subplot(122);
% 下面搞定横纵坐标注释
XArray=[sheng(:).X];%所有多边形的经度
YArray=[sheng(:).Y];%%所有多边形的纬度
[x,x1,y,y1,ex]=getxy(XArray,YArray);
mapshow(sheng,\'FaceColor\',\'r\');
set(gca,\'XTick\',x,\'XTicklabel\',x1);   %设置x,y轴
set(gca,\'YTick\',y,\'YTicklabel\',y1);
box on;
title([str \'行政规划图\']);
axis equal

结果:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab学习之求解函数的根和极小值发布时间:2022-07-18
下一篇:
在matlab中进行地理坐标和像素坐标的相互转换发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap