exponenta event banner

usamap

Построение осей карты для Соединенных Штатов Америки

Описание

пример

usamap state и

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

usamap 'conus' и

usamap('conus') создать пустые топоры карты для соперничающих 48 штатов (то есть всех штатов, исключая Аляску и Гавайи).

пример

usamap без аргументов представляет меню, из которого можно выбрать один штат, округ Колумбия, соперничающие 48 штатов или все штаты.

usamap(latlim,lonlim) создает пустые оси конформной карты Ламберта для области США, определяемой пределами широты и долготы в градусах.

usamap(Z,R) извлекает границы карты из объема регулярной сетки данных, Z, с географической привязкой R.

h = usamap(___) возвращает дескриптор осей карты.

пример

h = usamap('all') строит три пустые картографические оси, вставленные в одну фигуру, для соседних штатов, Аляски и Гавайев, со сферической моделью Земли и другими параметрами проекции, предложенными Геологической службой США. Карты в трех осях показаны приблизительно в одинаковом масштабе. Маркеры перемещения для трех осей карты возвращаются в h.

usamap('allequal') является таким же, как usamap('all'), но использование 'allequal' будет удален в следующем выпуске.

Примеры

свернуть все

Составьте карту только штата Алабама.

figure
usamap('Alabama')
alabamahi = shaperead('usastatehi', 'UseGeoCoords', true,...
            'Selector',{@(name) strcmpi(name,'Alabama'), 'Name'});
geoshow(alabamahi, 'FaceColor', [0.3 1.0, 0.675])

Добавьте текст, чтобы пометить состояние.

textm(alabamahi.LabelLat, alabamahi.LabelLon, alabamahi.Name,...
  'HorizontalAlignment', 'center')

Составьте карту прилегающей территории, которая содержит Калифорнию и Монтану.

figure
ax = usamap({'CA','MT'});
set(ax, 'Visible', 'off')
latlim = getm(ax, 'MapLatLimit');
lonlim = getm(ax, 'MapLonLimit');
states = shaperead('usastatehi',...
        'UseGeoCoords', true, 'BoundingBox', [lonlim', latlim']);
geoshow(ax, states, 'FaceColor', [0.5 0.5 1])

Добавление меток к каждому состоянию.

lat = [states.LabelLat];
lon = [states.LabelLon];
tf = ingeoquad(lat, lon, latlim, lonlim);
textm(lat(tf), lon(tf), {states(tf).Name}, ...
   'HorizontalAlignment', 'center')

Нанесите на карту Соединенные Штаты с различным цветом заливки для каждого штата.

figure
ax = usamap('conus');
states = shaperead('usastatelo', 'UseGeoCoords', true,...
  'Selector',...
  {@(name) ~any(strcmp(name,{'Alaska','Hawaii'})), 'Name'});
faceColors = makesymbolspec('Polygon',...
    {'INDEX', [1 numel(states)], 'FaceColor', ... 
    polcmap(numel(states))}); %NOTE - colors are random
geoshow(ax, states, 'DisplayType', 'polygon', ...
   'SymbolSpec', faceColors)

Установка дополнительных параметров отображения.

framem off; gridm off; mlabel off; plabel off;

Карта США с отдельными осями для Аляска и Гавайи.

figure
ax = usamap('all');
set(ax, 'Visible', 'off')
states = shaperead('usastatelo', 'UseGeoCoords', true);
names = {states.Name};
indexHawaii = strcmp('Hawaii',names);
indexAlaska = strcmp('Alaska',names);
indexConus = 1:numel(states);
indexConus(indexHawaii|indexAlaska) = []; 
stateColor = [0.5 1 0.5];

Отображение трех областей.

geoshow(ax(1), states(indexConus),  'FaceColor', stateColor)
geoshow(ax(2), states(indexAlaska), 'FaceColor', stateColor)
geoshow(ax(3), states(indexHawaii), 'FaceColor', stateColor)

Спрячь рамку.

for k = 1:3
    setm(ax(k), 'Frame', 'off', 'Grid', 'off',...
      'ParallelLabel', 'off', 'MeridianLabel', 'off')
end

Входные аргументы

свернуть все

Отображаемое состояние, указанное как строковый скаляр, строковый массив, символьный вектор или массив ячеек символьных векторов. Допустимые значения включают названия штатов, стандартные двухбуквенные сокращения Почтовой службы США для штатов и 'District of Columbia'.

Пример: usamap({'Maine','Florida'}) устанавливает границы карты, охватывающие регион от Мэна до Флориды.

Пределы широты, заданные как двухэлементный вектор формы [southern_limit northern_limit].

Пределы долготы, заданные как двухэлементный вектор формы [western_limit eastern_limit].

Сетка данных, заданная как массив M-by-N. Z - регулярная сетка данных, связанная с географической привязкой; R.

Географическая привязка, указанная как одно из следующих значений.

НапечататьОписание
Объект географической привязки растра

GeographicCellsReference или GeographicPostingsReference объект географической растровой ссылки. RasterSize свойство должно соответствовать размеру сетки данных, size(Z).

Вектор

Числовой вектор 1 на 3 с элементами:

[cells/degree northern_latitude_limit western_longitude_limit]
Матрица

Числовая матрица 3 на 2, преобразующая индексы растровых строк и столбцов в географические координаты или из них в соответствии с:

[lon lat] = [row col 1] * R

R определяет (не вращательное, не скошенное) соотношение, в котором каждый столбец сетки данных падает вдоль меридиана, а каждая строка - вдоль параллели.

Дополнительные сведения о привязке векторов и матриц см. в разделе Географические данные растра.

Выходные аргументы

свернуть все

Дескриптор осей карты, возвращаемый как объект дескриптора.

При использовании синтаксиса h = usamap('all'), то h - массив объектов-дескрипторов. h(1) является для противоборствующих государств, h(2) для Аляски, и h(3) для Гавайев.

Совет

  • Все оси, созданные с помощью usamap инициализируются сферической моделью Земли радиусом 6 371 000 метров.

  • В некоторых случаях usamap использование tightmap для плотной регулировки пределов оси вокруг карты. Если проекция изменена или требуется больше пробела вокруг рамки карты, используйте tightmap снова или axis auto.

  • axes(h(n)), где n = 1, 2, или 3, делает требуемые оси текущими.

  • set(h,'Visible','on') делает оси видимыми.

  • axesscale(h(1)) изменяет размеры осей, содержащих Аляску и Гавайи, до тех же масштабов, что и в соседних штатах.

Представлен до R2006a