使用matlab映射工具箱绘制各个国家/地区

时间:2015-07-14 08:45:38

标签: matlab

我想使用映射工具箱在matlab中绘制特定国家/地区的地图。具体来说,我想画一张奥地利和瑞士的地图。

我尝试了以下内容:

ax = worldmap({'Austria','Switzerland'});
land = shaperead('landareas', 'UseGeoCoords', true);
geoshow(ax, land, 'FaceColor', [0.5 0.7 0.5])
lakes = shaperead('worldlakes', 'UseGeoCoords', true);
geoshow(lakes, 'FaceColor', 'blue')
rivers = shaperead('worldrivers', 'UseGeoCoords', true);
geoshow(rivers, 'Color', 'blue')

产生

enter image description here

但是,我希望看起来更像this的东西,这是指定的国家,而不包括图中包含的其他欧洲国家。这可能在matlab中吗?

1 个答案:

答案 0 :(得分:1)

可能,是的,但您需要另一个shapefile,其中包含有关各个国家/地区的信息。

worldmap仅设置地图的边界。您绘制的其他信息来自您加载的shapefile,并且不会检查您在worldmap中设置的国家/地区 - 即使它确实如此,也无法对信息执行任何操作,因为如果您检查land您是否会看到欧洲的各个国家/地区都未列出。您可以为这两个国家/地区获取特定的shapefile,也可以获取包含所有欧洲数据的shapefile,并从中提取这两个国家/地区的详细信息。

使用内置数据的美国的一个简单示例:这会加载一组有关所有州的数据,但仅提取和绘制德克萨斯州:

ax = worldmap({'USA'});
land = shaperead('usastatehi', 'UseGeoCoords', true);
n = strcmp({land.Name},'Texas');
geoshow(ax, land(n))