文件交换

图片缩略图

边界

version 3.1.3 (6.88 MB) by 乍得格林
简单地绘制国家和美国的边界,无论是否使用Matlab的映射工具箱。
5.0
41评级

110下载

更新2020年2月20日

查看许可协议

* * *本页的功能不再更新。它们仍然可以像这里的例子一样工作,但我只积极地维护这些函数的版本,它们在MATLAB的气候数据工具箱中,可以在这里找到//www.tianjin-qmedu.com/matlabcentral/fileexchange/70338.* * *

该文件包含绘制国家边界和美国州的轮廓和名称的功能。不需要Matlab的映射工具箱。

有两个用于打印的函数:borders和bordersm,它们的工作方式相同,只是bordersm用于使用Matlab的映射工具箱创建的地图。类似地,labelborders和labelbordersm将文本标签放置在国家或州的边界内。

引用作为

《MATLAB的气候数据工具箱》。地球化学,地球物理,地球物理,地球物理学报,2019年7月,doi:10.1029/2019gc008392。

查看更多的风格

评论和评级(63

@Abdul: borderdata。Mat文件包含在zip文件中。

我在哪里可以找到borderdata.mat?

brivesj

非常感谢你,查德!现在效果很好:)

嗯,很抱歉,雅克。可能尝试删除此块:

if许可证('test','map_toolbox')
断言(ismap (gca) = = 0, '…')
结束

brivesj

嗨,无论我使用borders还是bordersm,我总是得到相同的错误:

"要使用'ismap',必须获得以下产品的许可并安装:
映射工具箱”

我不明白为什么…有什么可以帮忙的吗?

谢谢

雅克。

哦,是的,我看到问题了。这个功能的独立版本已经很旧了,但是您可以在Climate Data Toolbox中找到一个更新版本的文档。我将尝试很快更新这个独立版本,但同时您可以在这里获得CDT//www.tianjin-qmedu.com/matlabcentral/fileexchange/70338这应该行得通。

嗨,乍得,

这是一个极好的工具。我唯一的问题是,当我试图运行代码来更改中心经度时:
边界(‘国家’、‘中心’、100)

它返回这个错误:
错误使用阴谋
Line类上没有中心属性。

边界错误(第161行)
h=绘图(cell2nancat(lon)、cell2nancat(lat)、varargin{:});

对于为什么会这样,你有什么想法吗,或者有没有其他方法来改变我的中心经度?

谢谢!

非常好。非常容易编辑。6颗星。没什么可说的。

看来摩尔多瓦失踪了

很好的一天。我在使用此脚本时遇到问题,因此我的代码:
图形
边界(“日本”、“颜色”、“k”,“线宽”,2);
轴紧

我有一个错误:
错误使用matlab.graphics.axis.Axes /组
子元素只能被设置为
它本身

错误
map.graphics.internal.restackMapAxes>moveToTop
(第85行)
集(ax,“孩子”,[h (:);c])

map.graphics.internal.restackMapAxes中出错
(第72行)
移动到顶部(ax、hUserText)

第m行中的错误(第115行)
map.graphics.internal.restackMapAxes (h0)

plotm错误(第61行)
hndl0 = linem(纬度,经度,变长度输入宗量{:});

边界错误(第197行)
h=plotm(lat,lon,varargin{:});

谢谢你的努力。

感谢您为完成这项出色的工作所付出的努力。
也许你可以包括大陆边界选项,如“欧洲”或“亚洲”。

lvn

如果你能把中国的省份也包括进来,就像美国的州一样,那就太好了
https://nl.mathworks.com/matlabcentral/fileexchange/29462-china-province-mat
不完全兼容,因为中国的国家边界略有不同。

lvn

•Modiri

你好,Chad,我很喜欢你的功能,但是你能添加一个欧洲补丁吗?

@eko:确保你使用*hold on*命令来确保pcolor信息没有丢失。如果问题是边框覆盖了pcolor图,则首先调用边框。或者像这样做

h = pcolor(经度,纬度,z);
阴影平
抓住
边界
uistack(h,'top')%将pcolor带到顶部

你好,查德。。
知道如何在边框上方绘制pcolor(彩色)吗。。
在我的情况下,borders丢失了我的pcolor信息
谢谢大家

roki汗

Tianqi余

杰作代码,非常感谢!

你好赛,

我认为你应该指定'EdgeColor'而不是'Color',如果你是作为补丁绘制。就像这样:

边界('countries'、'edgeColor'、[1 0]、'facecolor'、[0 1 0])

亲爱的查德,
你做了一个非常有趣的工作,我经常使用它。
我无法用一种颜色绘制所有国家的边界,并用另一种颜色填充它们。
我试着这样做
边界('countries'、'Color'、[1 0]、'facecolor'、[0 1 0])
但这行不通。
你能帮我个忙吗?
最好的

嗨狄龙,

好问题!这个解决方案有点笨重,但它是有效的。其想法是绘制两次边界,并将第二组边界移动360度经度。然后根据需要设置轴限制。

h1=边界(“国家”、“无国界”);
h2 =边界(“国家”、“nomap”);

For k = 1:length(h2)
h2 (k)。XData = h2 (k)。XData + 360;
结束

轴([0 360 -90 90])

伟大的功能,乍得!但是,有没有一种以太平洋为中心的边界(“国家”,“nomap”)呢?

嗨,查德,这个功能太棒了!
感谢您花时间提供。
你能告诉我,你知道有没有可能把摩尔多瓦或马其顿等未列入名单的国家加入名单?
非常感谢:)

恒洋邓

Sagar

GIOC

岳城赵

嗨,乍得,
下载完这个文件后,我应该把文件放在哪里?
谢谢

使用非常简单!这里有一个简单的例子:

边界(“国家”、“颜色”、“黑色”)
抓住
边界(“巴西”,“FaceColor”、“绿色”);

地狱

董建志

你好
谢谢分享!
我怎么能画出整个欧洲的边界呢?
谢谢,
侗族

嗨,卡斯珀,

我一定错过了沃布罗森的问题。我会尽力回答它和你的问题。如果使用Matlab的“贴图工具箱”,请在绘制边界之前使用worldmap设置轴限制。这样地:

worldmap (2 [6], [-82 - -74])
边界

然后通过以下方式添加平台的lat、lon位置:

plotm(横向、纵向、横向)

如果你不使用Matlab的映射工具箱,你可以绘制lon和lats,就像它们是x和y值一样。就像这样:

轴([-82 -74 -6 2])
边界
情节(经度、纬度、“bo”)

如果你不使用Matlab的Mapping Toolbox,你总是可以在“未投影”的坐标中绘图,在那里你只是把经度当作x值,把纬度当作y值。如果你不介意空间扭曲,那也没关系。

对于特定情况的另一个选择是使用arcticborders函数,它在极立体坐标中绘图。在这里://www.tianjin-qmedu.com/matlabcentral/fileexchange/56923.然后绘制你的平台位置使用polarstereo_fwd(也在文件交换)转换你的lat,lon位置到投影的x,y坐标,类似的东西

(x, y) = polarstereo_fwd(纬度、经度);
情节(x, y,“bo”)

嗨,乍得,
我正在用你的功能来完成我在北海的学校项目,我的第一个问题有点像沃罗特森。能不能画出一个拉特隆盒子。我的第二个问题是,是否可能在地图上标出某些坐标(海上平台的位置)?
提前谢谢!

有没有一种方法可以只在某个横向框内绘图?试图在一个-82:-74 lon-6:2 lat框内绘制厄瓜多尔-哥伦比亚-秘鲁边界地图。尝试根据doc文件提取每个边框的lat-lon数据,然后仅选择相关点,但它会留下从角点连接点的线条。。。

嗨,码头,

有关国家/地区的列表,请键入

负载borderdata.mat
排序(位置)

拉丁美洲不是选项之一,所以你必须分别绘制拉丁美洲的每个国家。或者,您可以将此添加到输入解析部分:

如果strncmpi(“拉丁美洲”,4)
plotWhat = '拉丁美洲';
结束

并将其添加到“切换绘图内容”下

例“拉丁美洲”
lat=bd.lat([81721338394855757879120159162211214]);
lon=bd.lon([81721338394148557879120159162211214]);

虽然我不能保证结果。好运!

玛丽娜

是否有一个国家的名单包括在边境包?
我很想绘制拉丁美洲的地图,但好像不在里面……谢谢

龙城

非常感谢这些函数。它为我节省了很多时间!!!!

阿姆

有没有什么方法可以让你感兴趣?我试图在一些gtopo30数据上覆盖边框。

Jinny,这不是一个很好的解决方案,但这很有效:

bd =负载(“borderdata.mat”);
情节(bd.lon {209} (2684:9140) bd.lat {209} (2684:9140))

感谢!有没有办法画出没有州界的美国大陆?

Behnam,谢谢你的字条。这里的边界轮廓来自美国人口普查局50万数据集。如果你需要更高的分辨率,你可能需要在互联网上搜索法国特有的轮廓。

非常感谢你的建议。法国东北部的边界似乎有点不匹配。请您再检查一下好吗?

更新

3.1.3

只是添加了一个免责声明,该版本不再被维护。得到CDT。

3.1.2

实时更新脚本

3.1.1

添加了实时脚本

3.1

修复了bordersm中的一个错误,该错误以前在将多个国家绘制为修补程序对象时导致错误。

3.0

现在,bordersm是与Matlab的Mapping Toolbox一起使用的函数。

1.1.0.0

现在,无论是否使用“贴图工具箱”,都可以将国家或州轮廓绘制为面片对象。

MATLAB版本兼容性
创建R2012b
与任何版本兼容
平台的兼容性
窗户 macOS Linux