Создайте простые карты Используя usamap

В этом примере показано, как создать карты Соединенных Штатов с помощью usamap функция. usamap функция позволяет вам сделать карты Соединенных Штатов в целом, только совпадающий фрагмент ("ниже 48" состояний), группы состояний или одного состояния. Оси карты вы создаете с usamap функции соответствовали помеченной сетке вокруг площади, которую вы определяете, но не содержит данных, позволяя вам сгенерировать вид карты, вы хотите использовать функции отображения, такие как geoshow функция.

Задайте пределы карты и настройте объект осей карты. Этот пример создает карту области Чесапикского залива.

latlim = [37 40];
lonlim = [-78 -74];
figure
ax = usamap(latlim,lonlim);
axis off

Определите проекцию карты, используемую usamap функция. Ламберт Конформная Коническая проекция часто используется для карт совпадающих Соединенных Штатов.

getm(gca,'MapProjection')
ans = 
'lambert'

Используйте readgeotable функционируйте, чтобы считать Американские Государственные контуры многоугольника из файла форм под названием usastatehi.shp. Функция возвращает данные в геопространственной таблице.

states = readgeotable('usastatehi.shp');

Создайте спецификацию символа, чтобы создать расклад политических сил с помощью polcmap функция.

h = height(states);
faceColors = makesymbolspec('Polygon',...
    {'INDEX',[1 h],'FaceColor',polcmap(h)});

Отобразите заполненные многоугольники при помощи geoshow функция.

geoshow(states,'SymbolSpec',faceColors)

Извлеките имена для состояний в пределах карты и используйте textm функция, чтобы построить их в точках метки, обеспеченных геопространственной таблицей. Поскольку polcmap присваивает случайные пастельные цвета закрашенным фигурам, ваша карта может выглядеть по-другому, чем этот пример.

for k = 1:h
    labelPointIsWithinLimits = ...
        latlim(1) < states.LabelLat(k) &&...
        latlim(2) > states.LabelLat(k) &&...
        lonlim(1) < states.LabelLon(k) &&...
        lonlim(2) > states.LabelLon(k);
    if labelPointIsWithinLimits
        textm(states.LabelLat(k),...
            states.LabelLon(k), states.Name(k),...
            'HorizontalAlignment','center')
    end
end
textm(38.2,-76.1,' Chesapeake Bay ',...
    'fontweight','bold','Rotation',270)

Для просмотра документации необходимо авторизоваться на сайте