Search for an address

Learn how to find an address or place with a search widget and the Geocoding service.

Search for an address

Geocoding is the process of converting address or place text into a location. The Geocoding service can search for an address or a place and perform reverse geocoding. Use the Search widget to access the Geocoding service and perform interactive searches.

In this tutorial, you will use the Search widget to search for addresses and places.

Prerequisites

Steps

Create a new pen

  1. To get started, either complete the Display a map tutorial or .

Get an access token

You need an access token with the correct privileges to access the location services used in this tutorial.

  1. Go to the Create an API key tutorial and create an API key with the following privilege(s):
    • Privileges
      • Location services > Basemaps
      • Location services > Geocoding
  2. In CodePen, set esriConfig.apiKey to your API key..
    Use dark colors for code blocks
    1
    2
    3
    4
    esriConfig.apiKey = "YOUR_ACCESS_TOKEN";
    const map = new Map({
      basemap: "arcgis/topographic" // basemap styles service
    });

To learn about other ways to get an access token, go to Types of authentication.

Add modules

  1. In the require statement, add the Search module.

    Expand
    Use dark colors for code blocks
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
      require([
        "esri/config",
        "esri/Map",
        "esri/views/MapView",
    
        "esri/widgets/Search"
    
      ], function(esriConfig, Map, MapView, Search) {
    
    Expand

Update the map

A streets basemap layer is typically used in geocoding applications. Update the basemap property to use the arcgis/navigation basemap layer and change the position of the map to center on Seattle.

  1. Update the basemap property from arcgis/topographic to arcgis/navigation.

    Expand
    Use dark colors for code blocks
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
      esriConfig.apiKey = "YOUR API KEY";
    
      const map = new Map({
          basemap: "arcgis/navigation"
        });
    
    Expand
  2. Update the center property to [-122.3321, 47.6062] and set the zoom property to 12 to center on Seattle.

    Expand
    Use dark colors for code blocks
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
      const view = new MapView({
          container: "viewDiv",
          map: map,
          center: [-122.3321,47.6062],
          zoom: 12
        });
    
    
    Expand

Add a Search widget

The Search widget is a visible control that allows you to interactively search for addresses and places. It provides suggestions as you type and allows you to select a result. When you select a result, it zooms to a location and displays a pop-up with the address information. By default, the widget uses a locator and source that accesses the Geocoding service.

  1. Create a Search widget. Set the view property to view.

    Expand
    Use dark colors for code blocks
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
      const view = new MapView({
          container: "viewDiv",
          map: map,
          center: [-122.3321,47.6062],
          zoom: 12
        });
    
      const search = new Search({  //Add Search widget
          view: view
        });
    
    Expand
  2. Add the widget to the top right corner of the view. Learn more about adding UI components to the view in DefaultUI.

    Expand
    Use dark colors for code blocks
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
      const search = new Search({  //Add Search widget
          view: view
        });
    
        view.ui.add(search, "top-right"); //Add to the map
    
    Expand

Run the app

In CodePen, run your code to display the map.

Try searching for the following locations:

  • Seattle
  • Space Needle
  • Hollywood Blvd
  • 34.13419, -118.29636

The map should display a Search widget and that allows you to interactively search for addresses and places.

What's next?

Learn how to use additional API features and ArcGIS services in these tutorials:

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.