# Create Simple Maps Using usamap

This example shows how to create maps of the United States using the `usamap` function. The `usamap` function lets you make maps of the United States as a whole, just the conterminous portion (the "lower 48" states), groups of states, or a single state. The map axes you create with the `usamap` function has a labelled grid fitted around the area you specify but contains no data, allowing you to generate the kind of map you want using display functions such as the `geoshow` function.

Specify map limits and set up a map axes object. This example creates a map of the Chesapeake Bay region.

```latlim = [37 40]; lonlim = [-78 -74]; figure ax = usamap(latlim, lonlim)```
```ax = Axes with properties: XLim: [-1.8118e+05 1.8118e+05] YLim: [4.4299e+06 4.7720e+06] XScale: 'linear' YScale: 'linear' GridLineStyle: '-' Position: [0.1300 0.1100 0.7750 0.8150] Units: 'normalized' Show all properties ```
`axis off`

Determine the map projection used by the `usamap` function. The Lambert Conformal Conic projection is often used for maps of the conterminous United States.

`getm(gca,'MapProjection')`
```ans = 'lambert' ```

Use the `shaperead` function to read U.S. state polygon boundaries from the `usastatehi` shapefile. The function returns the data in a geostruct.

```states = shaperead('usastatehi',... 'UseGeoCoords',true,'BoundingBox',[lonlim',latlim']);```

Make a symbolspec to create a political map using the `polcmap` function.

```faceColors = makesymbolspec('Polygon',... {'INDEX',[1 numel(states)],'FaceColor',polcmap(numel(states))});```

Display the filled polygons with the geoshow function.

`geoshow(ax,states,'SymbolSpec',faceColors)`

Extract the names for states within the window from the geostruct and use the `textm` function to plot them at the label points provided by the geostruct. Because `polcmap` assigns random pastel colors to patches, your map might look different than this example.

```for k = 1:numel(states) labelPointIsWithinLimits = ... latlim(1) < states(k).LabelLat &&... latlim(2) > states(k).LabelLat &&... lonlim(1) < states(k).LabelLon &&... lonlim(2) > states(k).LabelLon; if labelPointIsWithinLimits textm(states(k).LabelLat,... states(k).LabelLon, states(k).Name,... 'HorizontalAlignment','center') end end textm(38.2,-76.1,' Chesapeake Bay ',... 'fontweight','bold','Rotation',270)```

Get trial now