Как только объект осей был создан с axesm
, отображаются ли данные карты или нет, возможно изменить текущую проекцию, а также многие ее параметры. Можно использовать setm
или maptool
UI для сброса проекции. Остальная часть этого раздела описывает факторы и параметры, связанные с переключением проекций в осях карты. Дополнительные детали приведены для этого с geoshow
функция в проекциях Change Map Использование геопоказа.
Когда вы переключаетесь с одной проекции на другую, 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)
Этот пример показов, как переключиться с одной проекции на другую и сбросить пределы источника и системы координат, особенно при отображении небольшого фрагмента Земли.
Создайте пустые оси карты для области Соединенных Штатов в проекции Lambert Conformal Conic (проекция по умолчанию для usamap
функция).
latlim = [32 42]; lonlim = [-125 -111]; h = usamap(latlim, lonlim);
Чтение usastatehi
shapefile и возвращает подмножество содержимого shapefile, заданное пределами широты и долготы. The 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 Area Azimuthal и сбросьте источник координат и пределы системы координат.
setm(gca,'MapProjection','eqaazim','Origin',[37 -118], ... 'FLatLimit',[-Inf 6]) setm(gca,'mlinelocation',2,'plinelocation',2) tightmap