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)