我需要对我正在使用的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或更高版本(即国家/地区)配合使用 - 特定的彩色绘画作品)?
提前谢谢大家, 扬