Switch Between Projections
Once you create an
axesm-based map, whether map data is displayed
or not, it is possible to change the current projection as well as many of its
setm to reset the projection. The rest of this
section describes the considerations and parameters involved in switching projections in
axesm-based map. Additional details are given for doing this
geoshow function in Change Map Projections Using geoshow.
When you switch from one projection to another,
setm clears out
settings that were specific to the earlier projection, updates the map frame and
graticule, and generally keeps the map covering the same part of the world—even
when switching between azimuthal and non-azimuthal projections. But in some cases, you
might need to further adjust the
axesm-based map properties to
achieve proper appearance. Settings that are suitable for one projection might not be
appropriate for another. Most often, you'll need to update the positioning of your
meridian and parallel labels.
Change Projection Updating Meridian and Parallel Labels
This example shows how to change the projection of an
axesm-based map and update the meridian and parallel labels.
Create a Mercator projection with meridian and parallel labels.
axesm mercator framem on; gridm on; mlabel on; plabel on setm(gca,'LabelFormat','signed') axis off
Get the default map and frame latitude limits for the Mercator projection. Note that both the frame and map latitude limits are set to 86 degrees north and south for the Mercator projection to maintain a safe distance from the singularity at the poles.
ans = 2×2 -86 86 -86 86
Switch the projection to an orthographic azimuthal.
Specify new locations for the meridian and parallel labels.
setm(gca,'MLabelParallel',0,'PLabelMeridian',-90, ... 'PLabelMeridian',-30)
Change Projection Resetting Frame Limits
This example shows how to switch from one projection to another in an
axesm-based map and reset the origin and frame limits, especially when mapping a small portion of the Earth.
axesm-based map for a region of the United States in the Lambert Conformal Conic projection (the default projection for the
latlim = [32 42]; lonlim = [-125 -111]; h = usamap(latlim, lonlim);
usastatehi shapefile and return a subset of the shapefile contents, as defined by the latitude and longitude limits. The
shaperead function returns the data in a structure called
states = shaperead('usastatehi.shp', 'UseGeoCoords', true, ... 'BoundingBox', [lonlim', latlim']);
Save the latitude and longitude data from the structure in the vectors
lat = [states.Lat]; lon = [states.Lon];
Project patch objects on the map.
patchm(lat, lon, [0.5 0.5 1])
Change the projection to Lambert Equal Area Azimuthal and reset the origin and frame limits.
setm(gca,'MapProjection','eqaazim','Origin',[37 -118], ... 'FLatLimit',[-Inf 6]) setm(gca,'mlinelocation',2,'plinelocation',2) tightmap