После создания объекта оси карты с помощью axesmнезависимо от того, отображаются ли данные карты или нет, можно изменить текущую проекцию, а также многие ее параметры. Вы можете использовать setm или maptool Пользовательский интерфейс для сброса проекции. В остальной части этого раздела описываются соображения и параметры, связанные с переключением проекций в осях карты. Дополнительные сведения приведены для выполнения этого с geoshow в окне «Изменение проекций карты с помощью геошоу».
При переключении с одной проекции на другую setm очищает настройки, специфичные для более ранней проекции, обновляет рамку карты и гратикуле, и, как правило, сохраняет карту, охватывающую одну и ту же часть мира - даже при переключении между азимутальными и неазимутальными проекциями. Но в некоторых случаях может потребоваться дальнейшая корректировка свойств осей карты для достижения правильного внешнего вида. Параметры, подходящие для одной проекции, могут не подходить для другой. Чаще всего требуется обновить расположение меридиана и параллельных меток.
В этом примере показано, как изменить проекцию карты и обновить меридиан и параллельные метки.
Создайте проекцию Меркатора с меридианом и параллельными метками.
axesm mercator framem on; gridm on; mlabel on; plabel on setm(gca,'LabelFormat','signed') axis off

Получите границы широты рамки и карты по умолчанию для проекции Mercator. Обратите внимание, что границы широты рамки и карты установлены на 86 градусов севернее и южнее, чтобы проекция Меркатора сохраняла безопасное расстояние от сингулярности на полюсах.
[getm(gca,'MapLatLimit'); getm(gca,'FLatLimit')]
ans = 2×2
-86 86
-86 86
Переключите проекцию на ортогональную азимутальную.
setm(gca,'MapProjection','ortho')

Укажите новые расположения меток меридиана и параллели.
setm(gca,'MLabelParallel',0,'PLabelMeridian',-90, ... 'PLabelMeridian',-30)

В этом примере показано, как переключиться с одной проекции на другую и сбросить исходные и кадровые пределы, особенно при отображении небольшой части Земли.
Построение пустых осей карты для региона США в конформной конической проекции Ламберта (проекция по умолчанию для usamap функция).
latlim = [32 42]; lonlim = [-125 -111]; h = usamap(latlim, lonlim);

Прочитайте usastatehi shapefile и возвращает подмножество содержимого shapefile, определяемое пределами широты и долготы. shaperead функция возвращает данные в структуре с именем states .
states = shaperead('usastatehi', 'UseGeoCoords', true, ... 'BoundingBox', [lonlim', latlim']);
Сохранение данных широты и долготы из структуры в векторах lat и lon .
lat = [states.Lat]; lon = [states.Lon];
Проецирование объектов-сегментов на оси карты.
patchm(lat, lon, [0.5 0.5 1])

Измените проекцию на «Равная площадь Ламберта» (Lambert Equal Azimuthal) и сбросьте исходные значения и пределы рамки.
setm(gca,'MapProjection','eqaazim','Origin',[37 -118], ... 'FLatLimit',[-Inf 6]) setm(gca,'mlinelocation',2,'plinelocation',2) tightmap
