Symbolize features

Most of the maps you create as the GIS specialist for Cambridge, Minnesota, include a basemap. By designing a custom basemap, you will have more control over the appearance of your maps. In this lesson, you will add raw county data into a new basemap, change the coordinate system, and symbolize the features. When symbolizing, you will consider both the guidelines for visual variables and the visual hierarchy of important features.

Start a new basemap

First, you will create a new basemap in ArcGIS Pro.

  1. Download the Isanti_Data compressed folder.
  2. Locate the downloaded file on your computer.

    Depending on your web browser, you may have been prompted to choose this file’s location before you began the download. Most browsers download to your computer’s Downloads folder by default.

  3. Right-click the file and extract it to a location you can easily find, such as your Documents folder.

    Next, you will start a new project in ArcGIS Pro.

  4. Start ArcGIS Pro and sign in to your ArcGIS organization account or into your ArcGIS Enterprise using a named user account.

    If you do not have an organizational account, you can sign up for an ArcGIS free trial.

    When you open ArcGIS Pro, you are given the option to create a new project or open an existing one. If you have created a project before, you will see a list of recent projects.

  5. Under New Project, choose Map.

    The example images in these lessons use the ArcGIS Pro dark theme instead of the default light theme. To change the theme, click About ArcGIS Pro and click Options. On the General tab, change Theme to Dark.

    Open a new project

  6. In the Create a New Project window, name the map Isanti Basemap. Save it to a folder of your choice, such as your Documents folder and click OK.

    A new project opens.

  7. On the ribbon, click the Insert tab. In the Project group, click the arrow on the New Map button and choose New Basemap.

    Add a new basemap

    A blank basemap pane is added to the project. It is named Basemap. You will rename it something meaningful.

  8. In the Contents pane, click Basemap once to select it and a second time to edit the name. Change the name to Isanti Basemap.

Change the coordinate system

Next, you will change the coordinate system to something more appropriate for Minnesota. The default coordinate system is WGS 1984 Web Mercator, which is widely used for data at small scales, such as the United States or the world. But the Web Mercator projection is most accurate along the equator and distorts data towards the poles. Since Minnesota is far north of the equator and your map is large scale, you will use a State Plane coordinate system instead.

There are 124 State Plane coordinate systems, each tailored to a specific area in the United States. These zones are popular with local governments because they are accurate at specific scales. You will choose a State Plane coordinate system designed for central Minnesota, where Cambridge is located.

  1. In the Contents pane, double-click Isanti Basemap.

    The Basemap Properties window opens.

  2. Click Coordinate Systems.

    Change coordinate systems

    A list of available coordinate systems and other coordinate systems options becomes available.

  3. In the search bar, type State Plane and press Enter. In the list of results, expand Projected coordinate system and State Plane.

    Search for State Plane coordinate system

  4. Expand NAD 1983 (Meters) and click NAD 1983 StatePlane Minnesota Central FIPS 2202 (Meters). Then, click OK.

    You can enter more keywords of the coordinate system's name to reduce the choices and find it more easily, for instance StatePlane Minnesota Central.

    The map’s coordinate system is now set and the window closes. You will also change the projections of all the data you'll use in the project, that is, the data stored in the Isanti_Data folder you extracted. If the basemap and the data have different coordinate systems, you may encounter visual errors or incorrect geometry. You will use a tool called Batch Project to change the coordinate system of all your data at once.

  5. On the ribbon, click the Analysis tab. In the Geoprocessing group, click Tools.

    Tools button

    The Geoprocessing pane appears.

  6. In the search bar, type Batch Project. In the list of results, click Batch Project (Data Management Tools).
  7. For Input Feature Class or Dataset, click the browse button and browse to the Isanti_Data folder you extracted.

    The folder contains a list of 11 shapefiles.

  8. While pressing Shift, click the first layer in the list and the last layer to select all 11 layers. Click OK.

    All 11 layers selected.

  9. For Output Workspace, click the browse button. In the Output Workspace window, under Project, click Databases and choose the Isanti Basemap geodatabase. Click OK.

    Choose the Isanti Basemap geodatabase.

    The output layers will be added to the project’s default geodatabase.

  10. For Output Coordinate System,click the pull-down arrow and choose Current Map.

    The coordinate system changes to match the one of the map (NAD 1983 StatePlane Minnesota Central FIPS 2202).

    Batch project tool

  11. Click Run.

    The tool runs and the reprojected data layers are added to the project’s default geodatabase.

  12. Close the Geoprocessing pane. In the Catalog pane, expand Databases then click and expand Isanti Basemap.gdb.

    Layers in geodatabase


    If no layers appear, right-click the geodatabase and choose Refresh.

  13. Add all 11 of the projected layers to the map.

    To quickly add all layers, select them all using Shift+Click. Then, right-click any selected layer and choose Add to Current Map.

    The layers appear on the map.

    Isanti County default map


    The default symbology for each layer is random and may differ from the example images.

  14. In the Contents pane, double-click any layer to open its Layer Properties window. On the Source tab, click Spatial Reference and confirm the coordinate system is the Central Minnesota State Plane coordinate system.

    Confirm spatial reference

  15. Close the Layer Properties window.

Group the data

Your map has a large number of data layers. To keep these layers organized, you will group them based on the kind of data they contain. Grouping layers will also make it easier to manage the order in which layers appear on the map.

  1. In the Contents pane, click the arrow next to each layer to hide the symbols.

    The layers now take up less space in the pane.

  2. Press the Ctrl key while clicking all the following layers:

    • Isanti_Airport_Points
    • Isanti_Roads
    • Isanti_Railroads
    • Isanti_Airport_Runways

    These layers involve transport, so it makes sense to group them.

  3. Right-click the selected layers and choose Group.

    Create Group layer

    The selected layers are added to a new group layer. Each layer is still functional on its own, but they can also be turned on and off as a group, along with other capabilities.

  4. Click New Group Layer and click it a second time to change its name. Rename the group layer Transport.
  5. Group the following layers:

    • Isanti_Flowlines
    • Isanti_Water_Bodies
    • Isanti_Major_Rivers

    These layers all involve hydrological features.

  6. Rename the group Hydro.

    All the remaining four layers involve political boundaries, such as nature reserves or incorporated cities.

  7. Group the remaining layers and rename the group Boundaries.

    Group layers

    Your data is now grouped into three types of data. It will be easier to find specific layers as you proceed through the workflow.

Change the background

Now that all the data is on the map, you will start to symbolize it. First, you will change the background. Currently, the county boundary layer has a fill color that serves as the background, but only for the parts of the map inside Isanti County. You will change the county boundary’s symbol to an outline with no fill, and then change the basemap’s background to a light gray color that will not stand out too much or obscure the other layers.

  1. In the Contents pane, right-click Isanti_County and choose Symbology.

    Open Symbology pane

    The Symbology pane opens and displays the layer’s symbol. Isanti County is displayed as a single symbol.

  2. Next to Symbol, click the symbol swatch.

    The Format Polygon Symbol window opens to the gallery. Esri provides a list of default symbols for both 2D and 3D maps. For this layer, you will use one of these symbols.

  3. In the gallery, scroll down and choose Black Outline (1 pt).

    Format polygon symbol

    The county layer redraws with the new outline and no fill color. Next, you will add a light gray background color to the entire basemap.

  4. In the Contents pane, double-click Isanti Basemap. In the Basemap Properties window, click the General tab.
  5. For Background color, click the color box and choose Color Properties.

    Change background color

    The Color Editor window opens. It contains advanced color options.

  6. In the HEX box, type FCFBFA. If necessary, change Transparency to 0 percent.

    Background color editor

  7. Click OK. In the Basemap Properties window, click OK.

    The new light gray background color is added to the map.

  8. In the upper left corner of ArcGIS Pro, click the Save button.

Symbolize transportation layers

Next, you will symbolize your layers. You will start with the transport layer group. Of the layers in this group, the roads layer has the most prominence—roads fan out all over the country, with dense clusters in cities. Most of the roads are minor streets, but some are major highways. You will symbolize the layer to emphasize more important streets and prevent the clustered side streets from becoming unclear.

  1. In the Contents pane, click Isanti_Roads.

    If the Symbology pane is active, the roads layer will be added to it. The layer is currently drawn with a single symbol, but you want to use different symbols for different types of roads.


    If the Symbology pane is not active, in the Contents pane, right-click the layer and choose Symbology.

    The layer is currently drawn with a single symbol, but there are different classes of roads that you must show.

  2. Under Symbology for Primary Symbology, choose Unique Values.

    Unique Values option

    The pane changes with options to choose the value field you want to symbolize. All of your layers have several value fields that contain more information about the features displayed on the map. Often, these fields only contain the name of the feature, but the roads layer contains a field called MTFCC_CODE. MTFCC_CODE stands for MAF/TIGER Feature Class Code, which the United States Census Bureau uses to classify road types.

  3. Under Unique Values, for Field 1, choose MTFCC_CODE.

    Change value field

    The layer has four MTFCC Code classes. Each code is a series of letters and numbers without much meaning. You will change the label of each code with a more meaningful description of the type of road. (The definitions for each code can be found in the link provided in step 2 above.)

  4. Under Label, double-click each value and change it to the following text:

    • S1200: Secondary Road
    • S1400: Local Neighborhood Road
    • S1500: Vehicular Trail (4WD)
    • S1630: Ramp

    Edit MTFCC code list

    Secondary roads are the most important roads in Isanti County. You will give this road type a symbol to indicate its importance.

  5. On the Secondary Road row, click Format Symbol (that is, the line symbol).

    The Format Line Symbol pane opens to the gallery. It is similar to the polygon symbol gallery, but has specific options for line symbols.

  6. Click the second line symbol, Major Road.

    Major road symbol

    Three major roads travel through Isanti County. Two are aligned vertically and one is aligned horizontally. The city of Cambridge is at the intersection of the horizontal highway and the right vertical highway.

  7. In the upper left corner of the pane, click the back arrow to return to the list of values. On the Local Neighborhood Road row, click Format Symbol.
  8. In the gallery, click Minor Road. Then, return to the list of values.
  9. Similarly, change Vehicular Trail (4WD) to the 0.5 Point symbol, and change Ramp to the first ramp symbol.

    If you have trouble finding a symbol in the gallery, you can search for its name in the search bar.

    You have updated all four road types.

    Change road line symbols

    One of the benefits of using the default gallery symbols is that there is a clear visual hierarchy between different symbols. The symbol you chose for the secondary roads is brighter and slightly larger than the local roads symbol. This difference correctly indicates that the state routes are more important to the landscape.

    Symbolized roads layer

    The roads now have the correct symbology, but they are drawn as separate segments. Although it is easier to save roads as segments, they should be drawn as continuous features. Doing so will also reduce the bunching up of symbols, which causes the local roads symbol to sometimes obscure the more important highways.

  10. At the top of the Symbology pane, click the Symbol Layer Drawing button.
    Symbol layer drawing button

    All the feature types in the Isanti_Roads layer are displayed by drawing order, which is the order in which the symbols appear on the map. You will enable symbol layer drawing for all of these layers.

    Symbol layer drawing overrides the default drawing method of displaying all features in a layer as individual symbols. Instead, it draws symbols based on whether Join or No Join is chosen in the drawing order list. For features where Join is chosen (such as your road layers), adjacent individual symbols are displayed as a single continuous symbol.

  11. At the top of the pane, click Enable symbol layer drawing.

    Enable symbol layer drawing

    The road symbols are displayed as continuous symbols rather than individual segments.

    Connect road casings

    The minor roads no longer overlap the major roads, and all roads are drawn as continuous symbols. At this zoom extent, the minor roads still cluster densely in cities. Later in the lesson, you will change the symbols to draw differently at various scales in order to avoid this clustering, but for now you will change the symbols for the other transportation layers.

  12. In the Contents pane, click the Isanti_Railroads feature. In the Symbology pane, change its symbol to the gallery’s first Railroad symbol.

    Railroad symbol

  13. Change the Isanti_Airport_Runways symbol to the gallery’s first Airport Runway symbol.

    Airport Runway symbol

    The final transportation layer is Isanti_Airport_Points. This layer shows the location of airports as a point symbol, instead of the polygonal runways. You will use this layer when labeling features, so you will not worry about it for now.

  14. Press Ctrl+S to save the project.

Symbolize hydrography layers

Next, you will symbolize the hydrography layers. There is one river and several creeks flowing through Cambridge, and many lakes throughout the county. At this extent, most of the hydrography layers are difficult to see, so you will zoom in.

  1. Zoom to the city of Cambridge, located at the intersection of the horizontal highway and the rightmost vertical highway.

    Cambridge, Minnesota, overview

    When you zoom in, the roads become less densely clustered. It also becomes easier to see rivers and lakes in the area (in the example image, lakes have a default green symbology).

    Cambridge zoomed in

  2. Open the Symbology pane for Isanti_Water_Bodies.

    This layer only contains one type of feature, so you will give it a single symbol. The size and shape of the water bodies will be enough to indicate their importance in the region.

  3. In the Symbology pane, click the symbol swatch. In the gallery, choose the second Water (area) symbol.

    To make sure you have picked the second symbol, point to the symbol until hover text appears. The second water symbol has the text Category: Scheme 2.

    Change water style

  4. Open the Symbology pane for Isanti_Flowlines.

    The flowlines layer includes streams, canals, and ditches. Some of the flowlines represent major rivers and overlap with the Isanti_Major_Rivers layer. The major rivers layer provides the polygonal extent of streams, rivers, and other channels, while the flowlines layer only includes lines. The flowlines layer also contains attribute data such as flow direction and name, which will be important when labeling features. Like the water bodies, you will give the flowlines a single symbol.

  5. In the Symbology pane, click the symbol swatch.
  6. In the gallery, choose the second Water (line) symbol.

    Choose water line

    This symbol matches the water bodies layer. However, the line width is a little too small to see distinctly on the map.

  7. At the top of the pane, click Properties.

    Format Line Symbol properties

    In the Properties tab, you can customize individual elements of your symbology, such as color and size. This is where you can create custom symbology. The symbol you have set for the flowlines layer has a width of 1 pt.

  8. Change Line width to 1.5 pt and click Apply.

    The flowlines appear more clearly on the map.

  9. Change the Isanti_Major_Rivers layer to the same Water (area) symbol as the Isanti_Water_Bodies layer.

    New hydro symbols

    All of the hydrology layers are symbolized.

  10. Press Ctrl+S to save the project.

Symbolize boundary layers

Lastly, you will change the symbology for the boundary features. You have already symbolized the county boundary, but there are three more layers. The parks and nature reserves layers can use gallery symbols, but you will create a custom symbol for the incorporated place layer.

  1. Change the Cambridge_Parks layer to the gallery’s first Park symbol.
  2. Change the Isanti_Reserves layer to the gallery’s third Recreation symbol.

    Next, you will change the incorporated places layer. This layer represents cities in Isanti County. The gallery does not have a specific symbol for cities, so you will create your own symbol.

  3. Open the Symbology pane for Isanti_Incorporated_Places.
  4. Click the symbol swatch to go to the gallery. At the top of the pane, click Properties.
  5. Under Appearance, change Color to Tecate Dust.

    Change color properties


    To see the name of any color in the list of colors, point to it until its hover text appears.

    You will also change the outline color. It is a good idea to choose an outline that is similar to the fill color, but darker.

  6. Change Outline to Leather Brown (fourth column, bottom row). Change the Outline width to 2 pt and click Apply.

    The symbol coloring matches the background better, but it stands out too much. You will adjust the transparency to make the symbol subtler.

  7. On the ribbon, click the Feature Layer tab. In the Effects group, change the Transparency to 80 percent.

    Layer Transparency slider

    The incorporated place layer is still visible, but it blends into the background.

    Symbolized basemap draft

    This looks much more like a typical basemap now.

  8. Save the project.

In this part of the lesson, you started a new basemap, added data to it, and symbolized most of the data, while keeping cartographic principles in mind. In the next lesson, you will add labels to your features so that important places are named on the map.

Label features

Previously, you added and symbolized data to better show the transportation and hydrography features of Isanti County and Cambridge, Minnesota. You will now add context to those features with labels. You want your labels to highlight key features without being overwhelming or cluttering the map. To accomplish this, you will use font families, sizing, and other effects that make labels more legible. Then, you will set visibility limits to determine what extents the labels are drawn at.

Label major roads

Some layers, like the roads layer, have multiple categories of features. Just as you symbolized these categories differently, you will also label them differently. To do so, you will create some simple Structured Query Language (SQL) queries to define label classes based on attribute fields in the roads layer. You will then give each label class its own set of rules for label display, starting with major roads.

  1. In the Contents pane, click Isanti_Roads to select it.
  2. On the ribbon, click the Labeling tab. In the Layer group, click Label.

    Label button

    Labels are drawn for road features based on the first field in the layer’s attribute table, OBJECTID.

  3. In the Label Class group, change Field to FULL_STREE (short for full street name).

    The Unique Value window may open, warning you that there are more than 100 unique street names. Click Yes to display the labels.

    Field changed to full street name

    By default, as many labels that fit in the map extent are drawn. Almost every feature has labels, which is overwhelming and difficult to read. You will create a SQL query to display labels only for major highways.

  4. In the Label Class group, click SQL Query.

    Add SQL clause

    The Label Class pane appears. This pane contains options to create label classes with queries that specify how each type of road is labeled. For example, you will give the state route attribute a different label class than the local roads. You can identify state roads because they have an MTFCC Code of S1200.

  5. If necessary, in the Label Class pane, under Class, click SQL query. Click New Expression.

    SQL query option and New expression button

  6. Change the boxes to form the query MTFCC_CODE is Equal to S1200.

    Create SQL expression

  7. Click Apply.

    All labels except for state routes disappear. In this case, State Highway 95 has been given multiple labels with several local names.

    Local highway names

    To keep the name uniform throughout the map, you will use the state route designation as the field for the label class instead of the full street name. The state route designation is in a field called STATE_ROUT.

  8. On the ribbon, in the Label Class group, change Field to STATE_ROUT.

    The State Route field contains only route numbers. Although this makes your map less cluttered, the labels are not very descriptive. You will further customize your labels by writing an expression in Arcade that will combine the route number with descriptive text.

    Arcade is a scripting language created for customized visualizations and labeling expressions. It can be used across the ArcGIS platform.

  9. In the Label Class pane, click Label expression.

    Label expression button

    The default Arcade expression contains only the state route field.

  10. In the Expression box, click in front of the existing expression, $feature.STATE_ROUT. Type 'State Route ' + and add a space between your text and the existing expression.

    This space between State Route and the end quotation is vital. Without it, your label will read State Route95.

    Arcade expression

  11. Click Apply.

    State route labels

    You will also change the label font to stand out more. Like symbology, labels have a gallery of suggested fonts.

  12. On the ribbon, in the Text Symbol group, click the down arrow next to the list of styles and choose Major Road.

    Change major road label font

    The labels on the map look better now, but changing the font to the default Major Road style changed the font size to something small and difficult to see.

  13. On the ribbon in the Text Symbol group, change the font size to 10 pt and press Enter.

    The text changes size, but there are several duplicate labels for State Route 65. Some duplicate labels are fine, because the route stretches across the entire basemap. But some of the duplicate labels are close to one another, which is redundant. You will remove any duplicate labels that are within 4 inches of each other.

  14. In the Label Class pane, click Position and click Conflict Resolution.

    Conflict Resolution button

  15. Expand Remove duplicate labels. Change Do not remove to Remove within fixed distance, and set Search radius to 4.0 Inches.

    Remove duplicate labels within a fixed distance

    Duplicate labels that are too close to another label are removed from the map. Finally, you will change the name of the label class. It was chosen by the software by default. It’s not a meaningful name, so you will rename it.

  16. In the Label Class pane, click Class. Then, in the upper right of the pane, click the Menu button and choose Rename label class.

    Rename label class

  17. Rename the label class Major Roads and click OK.

Label local roads

When you added labels to all roads, the large number of labels cluttered the map. However, it is still useful to label some local roads. To keep the labels from overwhelming the features, you will set additional parameters to limit how many labels appear.

  1. On the ribbon, in the Label Class group, for Class, choose Create label class.

    Create label class

    With a new label class, you can set a completely new series of label parameters without changing the parameters you set for major roads.

  2. In the Create new label class window, type Local Roads and click OK.

    The new label class is added and the map is populated with all the default road labels.

  3. In the Label Class group, change Field to FULL_STREE. In the Text Symbol group, scroll down the gallery and choose Minor Road.

    Next, you will create an SQL query to only display local roads. The MTFCC Code for local roads is S1400.

  4. In the Label Class group, click the SQL Query button. Add the SQL clause MTFCC_CODE is Equal to S1400. Click Apply.

    Now that only local roads have labels, you will remove duplicate labels entirely, because local roads are much smaller than highways. You will also remove labels entirely for especially small features, which will help prevent clutter while ensuring that the most important roads remain labeled.

  5. In the Label Class pane, click Position. Set Remove duplicate labels to Remove all.
  6. Expand Minimum feature size. Set Minimum for labeling to 1.0 Inches.

    Set minimum size for labeling

  7. Zoom out until you see the entire county.

    The local road labels still appear at this extent, even though most of the local roads are barely distinguishable. To fix this, you will set visibility ranges. There is no one rule for setting visibility ranges, but if labels are not useful, they should be removed.

  8. On the ribbon, in the Visibility Range group, change Out Beyond to 1:24,000.

    Out Beyond visibility range

    The labels for local roads no longer appear at scales smaller than 1:24,000. State routes are still relevant at smaller scales, so you’ll set a larger extent for them.

  9. Change Class to Major Roads. Change Out Beyond to 1:100,000.

    Finished labels

  10. Save the project.

Add label effects

The gallery labels you added for streets are legible, appropriately sized, and distinguishable from the features they appear above. Sometimes, however, labels are not legible and must be given label effects to appear distinctly on the map. In the next section, you will add labels to your other features and give them label effects so they stand out more.

  1. In the Contents pane, click the Isanti_Airport_Points layer to select it.
  2. On the ribbon, on the Labeling tab, click Label. If necessary, change the Field to Name.
  3. Zoom to the Cambridge Municipal Airport label.

    Label Cambridge Municipal Airport

    The default label position for point features is to the upper right of the point symbol. In this case, since the runway is on the map, the point feature is not needed. However, the point feature is used for labeling, so you will only make it invisible instead of removing it entirely.

  4. Click the Feature Layer tab. In the Effects group, change the transparency to 100 percent.

    The point no longer appears, but the label remains by the runway.

  5. On the Labeling tab, change the font to Constantia.

    Font changed to Constantia

    Constantia is in the same font family as Corbel, the font you used for the road labels. When making maps, it is important to use two or three fonts from a single family so your labels appear coordinated.

    Change label font

    Although the font looks more like the roads labels, it stands out too much.

  6. In the Label Class pane, click the Symbol tab and expand Appearance.
  7. Change Size to 9 pt and Color to Gray 70% (first column, third row from the bottom). Click Apply.

    Change font size

    The size is more appropriate for the feature, but the label blends in a little with the gray background, and will blend in even more at zoom extents where it overlaps with the runway. To make the text stand out, you will add a halo effect. A halo is a ring applied to the border of each individual letter to make it stand out from the background. Usually, the halo’s color should contrast with the text.

  8. Collapse Appearance and expand Halo. For Halo symbol, choose White fill.

    Add label halo

  9. Click Apply.

    Airport label with halo

    The halo looks good, but it can make the text more difficult to read when the letters are close together. You will adjust the spacing between each letter to make the text more legible.

  10. In the Label Class pane, click Formatting.

    Formatting group

  11. Expand Formatting. Change Letter spacing to 10 percent and click Apply.

    Change letter spacing

    The difference is subtle but noticeable. Like roads, you do not have to show the label for airports at smaller scales, so you will set a visibility range.

  12. On the ribbon, in the Visibility Range group, change Out Beyond to 1:50,000.

    The water bodies, flowlines, parks, and incorporated places also need labels. The next few steps provide suggested label settings for each of the remaining layers, but feel free to experiment with label styles and effects on your own.

  13. For the Isanti_Water_Bodies layer, create a label with the following specifications:

    • Field: GNIS_Name
    • Text Symbol: Water (Small)
    • Text Symbol Font Style: Italic
    • Color: Gray 40%
    • Visibility Range: Out Beyond 1:50,000

  14. For the Isanti_Flowlines layer, create a label with the following specifications:

    • Field: GNIS_Name
    • Text Symbol: Water (Small)
    • Text Symbol Font Style: Italic
    • Color: Gray 50%
    • Visibility Range: Out Beyond 1:24,000

  15. For the Cambridge_Parks layer, create a label with the following specifications:

    • Field: Name
    • Text Symbol: Park
    • Visibility Range: Out Beyond 1:24,000

  16. For the Isanti_Incorporated_Places layer, create a label with the following specifications:

    • Field: Place_Name
    • Text Symbol: Populated Place
    • Remove duplicate labels: Remove all
    • Visibility Range: Out Beyond 1:500,000

    Incorporated places are important even at small scales, so it should have a much larger visibility range than the other layers.

    City of Cambridge with labeling

  17. Save the project.


On most maps, highways are represented by both their full name and their number in a shield symbol. In this optional challenge, see if you can create new labels for the highways using the shield symbols available in the gallery.


Create a new label class using the STATE_ROUT field. On the Labeling tab, experiment with the options in the Label Placement group to position the shield directly on the line, instead of above it. Remember to create a query so only state highways have shields, remove duplicate labels within a fixed distance, and set an appropriate visibility range.

Add highway shield

In this part of the lesson, you added legible labels to many of the features on your map. At this stage in the mapmaking process, you could use this basemap for your city projects. But basemaps usually include more rules for scalable features than just visibility ranges for the labels. In the next lesson, you will edit the visibility rules to make your basemap useful at multiple scales. Next, you will publish your multiscale basemap to ArcGIS Online.

Publish a multiscale basemap

Previously, you added labels to your map. Next, you will complete your map by making it multiscale. A multiscale map changes its symbology at different extents, maintaining a strong visual experience whether the user zooms in or out. Vector tiles are a type of layer that displays point, line, and polygon data at a range of scales, similar to other basemaps.

Change symbology for different scales

What looks good at one scale may not look good at another. This is especially true of your local roads symbol. When zoomed in, the roads look fine, but when zoomed out, the bulky white symbol dominates the map. To fix this problem, you will create an alternate symbol and write a set of expressions that determine when each symbol is drawn.

  1. Zoom out until you can see the entire county.

    Isanti County at small scale

    At this extent, the local roads overwhelm many other map features.

  2. Open the Symbology pane for the Isanti_Roads layer.

    If necessary, on the ribbon, on the Feature Layer tab, in the Drawing group, click Symbology.

  3. In the Symbology pane, click the Scales tab.

    Scale range view

    The list of scale ranges for each road symbol appears. Each of the road layer features has a scale range slider.

  4. Click the local roads category (S1400) to select it.
  5. Click Add alternate symbol.

    Add alternate symbol

    Under the S1400 row, there are now two symbol rows. You will change the second symbol and specify the map extents at which you want each symbol to be visible.

  6. For the second local roads symbol, click Format symbols (that is, the symbol line on that row).

    The gallery appears.

  7. On the Properties tab, click Layers.

    The gallery symbol you previously used for local roads is a cased symbol, which means it has two distinct layers. One is a thin white line, and one is a thick tan line. When layered on top of one another, these symbols create the appearance of white roads with a tan border. Thin white lines are a common choice for road features at a small scale, but they would not show up well against the light background of your map. You will use a thinner version of the tan layer.

  8. Uncheck the box next to the white line.
  9. Click the tan line to select it. Change the width to 1 pt.

    Change line width

    You will also make the line transparent so areas with many roads bunched together will not obscure other features as much.

  10. For Color, click the color swatch and choose Color Properties. Change the Transparency setting to 50 percent.
  11. Click OK. In the Symbology pane, click Apply.

    The map does not change because you have not set a visibility scale for this symbol yet.

  12. In the Symbology pane, click the back arrow to return to the list of categories and symbols.
  13. In the local roads group, drag the slider for S1400 down to 1:24,000.

    Change alternate symbol visibility

    The feature’s two symbols change visibility accordingly. The thin tan line draws when zoomed out past 1:24,000, while the thick white line will draw when zoomed in. At the current map scale, the thin tan line draws.

    Alternate road symbol results

  14. Save the project.

Create a vector tile index

Your map is completed. Soon, you will publish it to your ArcGIS Online account as a vector tile layer. But first, you will index the map. A vector tile index is a layer that simplifies your data into squares that are sized based on the number of features in an area. An index is a way to check your work and make sure there are not many features in a place where there should not be. If you ensure your data has no excess features, your map will publish and load more quickly.

  1. Open the Geoprocessing pane. (If the pane is not already open, click the Analysis tab and click Tools.)
  2. Search for and open Create Vector Tile Index.

    Create Vector Tile Index

    The tool parameters appear.

  3. For Input Map, choose Isanti Basemap.
  4. For Output Tile Feature Class, click the Browse button. Click Folders and double-click Isanti_Basemap.gdb. For Name, type Isanti_Basemap_Tile and click Save.

    Browse to Isanti Basemap.gdb

    The index will publish to the geodatabase as a shapefile with a default name of Isanti_Basemap. You can also choose to package the index using the default tiling scheme for ArcGIS Online or other online services. However, to use this tiling scheme, your data must have the Web Mercator projection, which it does not.

  5. Uncheck the box next to Package for ArcGIS Online | Bing Maps | Google Maps.

    When you uncheck the box, a default tiling scheme based on your map’s projection is chosen instead. The final parameter, Maximum Vertex Count, allows you to choose the number of vertices that become indexed into squares. The default value of 10,000 is fine.

    Package for ArcGIS Online

  6. Click Run.

    The index layer is added to the map.

    Vector tile index result

  7. If necessary, in the Contents pane, right-click Isanti_County and choose Zoom To Layer, to ensure you are seeing the index layer for the entire county.

    The size of each square is based on the number of vertices present among all data layers in the square’s area. Each square contains about 10,000 vertices, so areas with more features (and more complex data) have smaller squares. Since Cambridge has a large number of features, it has many vertices and the smallest squares in the index. Toward the edges of the county, there are fewer features, so the squares are larger.

    The index seems correct based on your knowledge of your data. If there was a concentration of small squares in the northwest corner of the county, where there are very few features, it would indicate a problem with data duplication or complexity. Since this dataset appears to have no problems, you will publish it.

  8. In the Contents pane, uncheck the Isanti_Basemap_Tile layer to turn off the index.

    The last thing you need to do before you publish is specify a custom extent for your basemap. If you try to publish your basemap without a custom extent, the basemap will encompass the entire world, even though it has no data for anywhere other than Isanti County. You will give your basemap a custom extent that more closely follows the county boundaries.

  9. In the Contents pane, double-click Isanti Basemap to open the Basemap Properties.
  10. Click the Extent tab.
  11. Click Use a custom extent. For Get extent from..., choose Isanti_County.

    Custom extent

  12. Click OK.

    Now the extent of your basemap matches the extent of the data.

  13. Save your project.

Publish a vector tile

With everything completed, you are ready to publish your basemap as a vector tile layer to ArcGIS Online.

  1. On the ribbon, click the Share tab. In the Share As group, click the Web Layer button.

    Share as web layer

    The Share As Web Layer pane opens.

  2. For Name, add your name or initials to the end of Isanti Basemap (for example Isanti Basemap (Your Name)).

    You cannot create two layers in an ArcGIS organization with the same name. Adding your initials to a layer name ensures that other people in your organization can also complete this lesson. Once a layer has been created, you can rename it in the map to remove your initials, which will not affect the name of the underlying data layer.

  3. For Summary, type Basemap of Isanti County, Minnesota, for use in city projects.
  4. For Tags, type basemap, vector tile, and Cambridge. Press Enter after each tag.

    Share web layer tags

  5. For Layer Type, select Vector Tile.

    For Enterprise users: For Data, select Copy all data to enable the Vector Tile Layer Type.

  6. For Sharing Options, check the box for your organization.
  7. At the top of the pane, click the Configuration tab.

    For Enterprise users: In the Configuration tab, for Vector Tile, click Configure Web Layer Properties.

    This window contains options for caching the tile. To make the tile size smaller, you will change the level of detail to only publish from a county level down. You will also ensure that the tile is locally cached in the project’s folder and that your index layer is used for tiling.

  8. Under Caching select Cache locally and for Temp local cache location, browse to the project’s Isanti Basemap folder.

    Cache parameters.

  9. Under Tilling Scheme, for Levels of Detail, drag the Minimum slider to Level 9 (County).

    Level of detail choices

  10. Under Options, for Tiling Format, ensure that Indexed is chosen. For Index Polygons, choose the Isanti_Basemap_Tile index layer.

    Share web layer configuration

  11. At the top of the pane, click the Content tab. Make sure all layers on your map (except the Isanti_Basemap_Tile index layer) are listed.

    If the layers do not appear in the list, they will not be packaged with the vector tile.


    All layers should appear twice, once under the Isanti Basemap Vector Tile Layer, and once under the Isanti Basemap Layer. You can hover over either element to see its type. Both are needed to publish the map.

    Next, you will analyze the data in the package for validity. If the analyze tool finds anything that might cause the package tool to fail, it will list the potential error along with a brief description.

  12. At the bottom of the pane, click Analyze.

    In this lesson, no errors should be found. A few warnings are found, but they are not essential and can be ignored.

  13. Under Finish Sharing, click Publish.

    Depending on your connection and bandwidth, the basemap may take several minutes to publish.

  14. After the layer is published, click Manage the web layer.

    Manage the web layer

    The basemap’s item details page opens in your ArcGIS Online account (you may need to sign in first). You can add the basemap to a new map in ArcGIS Online and test it.


Maps can look however you want. In this lesson, you created a basic basemap, using mostly the symbol gallery. If you want to further customize the map, you can change color values, transparency, fonts, and so on. A few examples are provided below; if you want to experiment more with cartography, use one of these or try making one of your own!

Bright basemap

One example is this brightly colored basemap. You may recognize some of the symbols from the gallery, but in general, all the colors have been made more vivid. Instead of a tan background for the city of Cambridge, the outline is done in a purple that ties together the blue of the lakes and orange roads. If you want to re-create this, you can use the HEX color values provided below. Remember that the transparency has been adjusted on some of the layers to help the colors blend better.

Background Secondary Road Local road 4WD Road RampHydroParksCityReserve


Line: E69973

Casing: B35933


Casing: 994019


Line: E69973

Casing: 994019

Fill: AAD3DF

Outline: 77C0CB


Fill: 4C0073

Outline: 4C0073


Night basemap

This basemap, inspired by the Streets (Night) basemap in the Living Atlas, features very dark, desaturated colors. If you work with dark colors like this, make sure to change the color of your labels and text halos. Try this one using the HEX colors below:

Background Secondary Road Local road 4WD Road RampHydroParksCityReserve


Line: 19527F

Casing: 19739A

Line: 404066

Casing: 19739A


Line: 19739A





Old fashioned

Finally, in this antique-inspired map, both fonts and color are different. Like the last map, the colors in this one are very muted, with a lot more purples. If you want to experiment with cursive fonts like this, try the Lucida font family. The HEX values are given below.

Background Secondary Road Local road 4WD Road RampHydroParksCityReserve


Line: B8AFB3

Casing: 949294


Casing: B9B7B9


Line: D4CFD1

Casing: B8AFB3



Fill: E3DDDD



For more mapping inspiration, check out the basemaps in the Living Atlas, especially those under the Creative Maps category.

You now have a functional large-scale basemap to use in city projects. It has legible symbology and meaningful labels, and can be viewed at several extents. As you created it, you learned a few things about basic cartographic principles you can apply to other maps that you make.

You can find more lessons in the Learn ArcGIS Lesson Gallery.