Main Content

Change Projection and Projection Parameters

Map axes objects use projected coordinate reference systems (CRSs) to transform geographic (latitude-longitude) coordinates to projected (xy) coordinates. Projected CRSs consist of a geographic CRS, a projection method, and projection parameters.

You can change the map projection for a map axes object by changing the projected CRS or by changing the projection parameters. Map axes automatically reproject plotted data when you change the projected CRS or projection parameters.

Change Projected CRS

Change the map projection for a map axes object by changing the projected CRS.

Plot world land areas using the default map axes.

figure
newmap

land = readgeotable("landareas.shp");
geoplot(land)

View information about the projected CRS stored in the map axes. By default, map axes use the Equal Earth projection method. This projection method preserves area.

mx1 = gca;
mx1.ProjectedCRS
ans = 
  projcrs with properties:

                    Name: "WGS 84 / Equal Earth Greenwich"
           GeographicCRS: [1x1 geocrs]
        ProjectionMethod: "Equal Earth"
              LengthUnit: "meter"
    ProjectionParameters: [1x1 map.crs.ProjectionParameters]

Create a projected CRS object that uses an Equidistant Cylindrical projection method. This projection method preserves distances.

p = projcrs(4087)
p = 
  projcrs with properties:

                    Name: "WGS 84 / World Equidistant Cylindrical"
           GeographicCRS: [1x1 geocrs]
        ProjectionMethod: "Equidistant Cylindrical"
              LengthUnit: "meter"
    ProjectionParameters: [1x1 map.crs.ProjectionParameters]

Change the projected CRS of the map axes. When you change the projected CRS, MATLAB® automatically updates the map and reprojects the plotted data.

mx1.ProjectedCRS = p;

Change Projection Parameters

Change the map projection for a map axes object by changing the projected parameters stored in the projected CRS.

Create a projected CRS object that uses the Bonne projection method.

p = projcrs(54024,Authority="ESRI")
p = 
  projcrs with properties:

                    Name: "World_Bonne"
           GeographicCRS: [1x1 geocrs]
        ProjectionMethod: "Bonne"
              LengthUnit: "meter"
    ProjectionParameters: [1x1 map.crs.ProjectionParameters]

Plot the same world land areas in a map axes object that uses the projected CRS.

figure
newmap(p)
geoplot(land)

View the projection parameters stored in the projected CRS. For more information about projection parameters, see the ProjectionParameters property description on the projcrs reference page.

mx2 = gca;
mx2.ProjectedCRS.ProjectionParameters
ans = 
  ProjectionParameters object with parameters:

     LatitudeOfNaturalOrigin: 60
    LongitudeOfNaturalOrigin: 0
                FalseEasting: 0
               FalseNorthing: 0

Change the latitude of natural origin to 90. Valid parameter values depend on the parameter and on the map projection method. When you change a projection parameter, MATLAB automatically updates the map and reprojects the plotted data.

mx2.ProjectedCRS.ProjectionParameters.LatitudeOfNaturalOrigin = 90;

Create several world maps that use the Bonne projection method in a tiled chart layout. Use a different latitude of natural origin for each map.

figure
tiledlayout(2,2,Padding="tight");

for latNaturalOrigin = [1 10 60 90]
    nexttile
    newmap(p)
    geoplot(land)

    mx = gca;
    mx.ProjectedCRS.ProjectionParameters.LatitudeOfNaturalOrigin = latNaturalOrigin;

    mx.FontColor = "none";
    title("Latitude of Natural Origin: " + latNaturalOrigin,Color="k")
end

See Also

Functions

Objects

Properties

Related Topics