如何使用shapefile为国家着色?

时间:2013-10-24 11:37:23

标签: matlab shapefile

我需要对我正在使用的MATLAB脚本提出一些建议。

我已经下载了一个shapefile,其中包括来自Natural Earth网站的所有国家/地区:http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_0_countries.zip

我首先阅读shapefile:

%% Load country borders shapefile
country_border_file =     'shapefiles\ne_50m_admin_0_countries\ne_50m_admin_0_countries.shp';
country_borders = shaperead(country_border_file,'UseGeoCoords',true);

然后使用geoshow函数绘制它:

ax = axesm('mercator');
geoshow(ax, [country_borders.Lat], [country_borders.Lon], 'Color', 'k');

一切正常。现在,我想为德国和英国的陆地区域添加特定的颜色,以提高地图的可见度。我运行以下代码:

ax = axesm('mercator');
symspec = makesymbolspec('Polygon', ...
                     {'name', 'Germany', 'FaceColor', [0.15 0.5 0.15]}, ...
                     {'name', 'United Kingdom', 'FaceColor', [0.15 0.5 0.15]});
geoshow(ax,country_borders,'SymbolSpec', symspec)

我收到以下错误消息:

  

???使用==>时出错line找到无效的属性。对象名称:行   物业名称:'SymbolSpec'。

     

==>中的错误mapline at 24 h = line(xdata(:),ydata(:),'Color',[0 0   1],varargin {:});

     

==>中的错误geovec在22 h = fcn(x,y,varargin {:});

     

==>中的错误geovecshow at 66 h = geovec(mstruct,lat,lon,...

     

==>中的错误地震在273 h = showFcn(varargin {:});

一般来说,除了绘制线条之外,我无法做任何事情。 Facecolor和其他参数无法提供类似的错误消息。

我的问题是:有没有解决这个问题的方法(如果没有)是否有一个可自由使用的shapefile(我已经测试了很多其他类似的问题)已经过测试,可以很好地与MATLABv7或更高版本(即国家/地区)配合使用 - 特定的彩色绘画作品)?

提前谢谢大家, 扬

0 个答案:

没有答案