Matlab 在映射工具箱中更改northarrow和标尺

Matlab 在映射工具箱中更改northarrow和标尺,matlab,Matlab,我正在使用matlab中的映射工具箱,有两个问题 在以下方面: worldmap([48 56],[12 27]); land = shaperead('landareas','UseGeocoords',true); geoshow(land,'facecolor',[0.8 0.8 0.8]); % add ruler scaleruler('units','km'); setm(handlem('scaleruler'), ... 'XLoc',-4.8e5,'YLoc',5.4

我正在使用matlab中的映射工具箱,有两个问题

在以下方面:

worldmap([48 56],[12 27]);
land = shaperead('landareas','UseGeocoords',true);
geoshow(land,'facecolor',[0.8 0.8 0.8]);

% add ruler
scaleruler('units','km');
setm(handlem('scaleruler'), ...
    'XLoc',-4.8e5,'YLoc',5.4e6,...
    'MajorTick',0:100:400,...
    'FontName','Times New Roman',...
    'FontSize',10,'FontWeight','light',...
    'LineWidth',2,...
    'MajorTickLength',20,'ruler','patches','TickMode','manual');
northarrow('latitude', 54.5, 'longitude', 24.5,'scaleratio', .17);
(1) 如何从北箭头中删除“N”,以及(2)如何使标尺从“0”开始,它当前从10开始,这对我来说似乎有点奇怪

我已经查阅了文档,但找不到这方面的任何内容。

1- 要使标尺从
0
开始,只需按如下方式修改该行:

setm(handlem('scaleruler'),'XLoc',-4.8e5,'YLoc',5.4e6,'MajorTick',0:100:400,'MinorTick',0,'FontName','Times New Roman','FontSize',10,'FontWeight','light',...
    'LineWidth',2,'MajorTickLength',20,'ruler','patches','TickMode','manual');  
h = handlem('NorthArrow');
set(h,'FaceColor',[0 0 0],'EdgeColor',[0.8 0.8 0.8])
worldmap([48 56],[12 27]);
land = shaperead('landareas','UseGeocoords',true);
geoshow(land,'facecolor',[0.8 0.8 0.8]);
northarrow('latitude', 54.5, 'longitude', 24.5,'scaleratio', .17);
h = handlem('NorthArrow');
set(h,'FaceColor',[0 0 0],'EdgeColor',[0.8 0.8 0.8])

scaleruler('units','km');
setm(handlem('scaleruler'),'XLoc',-4.8e5,'YLoc',5.4e6,'MajorTick',0:100:400,'MinorTick',0,'FontName','Times New Roman','FontSize',10,'FontWeight','light',...
    'LineWidth',2,'MajorTickLength',20,'ruler','patches','TickMode','manual');  
2- “删除”
N
符号的方法如下:

setm(handlem('scaleruler'),'XLoc',-4.8e5,'YLoc',5.4e6,'MajorTick',0:100:400,'MinorTick',0,'FontName','Times New Roman','FontSize',10,'FontWeight','light',...
    'LineWidth',2,'MajorTickLength',20,'ruler','patches','TickMode','manual');  
h = handlem('NorthArrow');
set(h,'FaceColor',[0 0 0],'EdgeColor',[0.8 0.8 0.8])
worldmap([48 56],[12 27]);
land = shaperead('landareas','UseGeocoords',true);
geoshow(land,'facecolor',[0.8 0.8 0.8]);
northarrow('latitude', 54.5, 'longitude', 24.5,'scaleratio', .17);
h = handlem('NorthArrow');
set(h,'FaceColor',[0 0 0],'EdgeColor',[0.8 0.8 0.8])

scaleruler('units','km');
setm(handlem('scaleruler'),'XLoc',-4.8e5,'YLoc',5.4e6,'MajorTick',0:100:400,'MinorTick',0,'FontName','Times New Roman','FontSize',10,'FontWeight','light',...
    'LineWidth',2,'MajorTickLength',20,'ruler','patches','TickMode','manual');  
它实际上使颜色与背景色相似

最终代码和结果如下:

setm(handlem('scaleruler'),'XLoc',-4.8e5,'YLoc',5.4e6,'MajorTick',0:100:400,'MinorTick',0,'FontName','Times New Roman','FontSize',10,'FontWeight','light',...
    'LineWidth',2,'MajorTickLength',20,'ruler','patches','TickMode','manual');  
h = handlem('NorthArrow');
set(h,'FaceColor',[0 0 0],'EdgeColor',[0.8 0.8 0.8])
worldmap([48 56],[12 27]);
land = shaperead('landareas','UseGeocoords',true);
geoshow(land,'facecolor',[0.8 0.8 0.8]);
northarrow('latitude', 54.5, 'longitude', 24.5,'scaleratio', .17);
h = handlem('NorthArrow');
set(h,'FaceColor',[0 0 0],'EdgeColor',[0.8 0.8 0.8])

scaleruler('units','km');
setm(handlem('scaleruler'),'XLoc',-4.8e5,'YLoc',5.4e6,'MajorTick',0:100:400,'MinorTick',0,'FontName','Times New Roman','FontSize',10,'FontWeight','light',...
    'LineWidth',2,'MajorTickLength',20,'ruler','patches','TickMode','manual');  

标尺不是从10km开始,而是从0开始。0只是没有打印出来;10属于黑条后面的那个。如果你想绘制好地图,请考虑使用。它是免费的,设计成这样的情节,但有漂亮的注解和颜色。