Starting with version 3.5, the ArcGIS API for Flex provides access to the ArcGIS GeoEnrichment service. This service provides the ability to get facts about a location or area. Using GeoEnrichment, you can get information about the people, places, and businesses in a specific area or within a certain distance or drive time from a location. GeoEnrichment capabilities allow you to answer questions about locations that you can't answer with maps alone. What kind of people live here? What do people like to do in this area? What are their habits and lifestyles? What kind of businesses are in this area?
The two screen captures below depicts a typical user experience when working with GeoEnrichment functionality using the ArcGIS API for Flex.
The first step is to click a location on the map to determine your study area and initiate a GeoEnrichment task.
Next, the geometry of the study area and the infographic are returned.
Multiple components fall under the GeoEnrichment umbrella. The Infographic and InfographicsCarousel are the two main components you will use if working with GeoEnrichment functionality. After you specify a study area and geometry, either the Infographic or InfographicsCarousel automatically accesses the GeoEnrichment service where the information you requested is properly summarized and visualized in tables or/and charts.
These componenst provides a graphic layout with the information about your study area. Three types of Infographic components are available:
- One variable - shown below with a custom skin
- Related variables
Variables can be thought of as the types of data you can add and work with using the GeoEnrichment service. An example of some types of variables could be:
- Household income
- Family size
- Average home value
- Percentage of developed land
- Tapestry classification of residents
This is just a small sampling of the many variables you can access when working with GeoEnrichment functionality. See the Explore GeoEnrichment Data Coverage sample to browse the variables per country.
One variable Infographic
The screen captures provided in the user experience above displays a OneVar, or 'one variable', type of Infographic. This type displays the value of single variable. In the example provided, the variable displayed is 'average household size'.
The code snippet to create this is similar to the following:
//KeyUSFacts is the datacollectionID and AVGHHSZ_CY, the variable.
The Infographic component is created with a specified type and variableId. When working with the Infographic component, the default URL it defaults to is https://geoenrich.arcgis.com/arcgis/rest/services/World/GeoenrichmentServer. You can override this default URL with your own endpoint. An example of this may be if working with an internal Portal for ArcGIS installation.
In addition to the type and variableId, you will also need to set the studyArea property. This is what defines the location of the point or area that you want to enrich with additional information. See the 'Study areas' section in the GeoEnrichment service overview topic for additional information.
In the example shown above the studyArea is determined when the map is clicked or a buffer is specified. The snippet below was taken from the map's mapClickHandler event.
var studyArea:GeometryStudyArea = new GeometryStudyArea();
studyArea.geometry = mapPoint;
studyArea.options = new RingBuffer(, RingBuffer.MILES);
//GeographyLevel takes in a (countryId, datasetId, and layerId, the last required)
//Admin levels are aliases that correspond to various levels of geography for
each individual country
//US: Admin3 (US.Counties), Admin2 (US.States), Admin1 (US.WholeUSA)
studyArea.comparisonGeographyLevels = [
new GeographyLevel(null, null, "Admin3"),
new GeographyLevel(null, null, "Admin2"),
new GeographyLevel(null, null, "Admin1")
studyArea.returnGeometry = true;
infoGraphic.studyArea = studyArea;
The GeometryStudyArea is created and is set to the geometry of the passed-in mapPoint. In addition, options is set to the studyArea. These options will be applied to the StudyArea's geometry to determine the area to enrich. See the StudyArea class' API reference for additional information.
If the study area's geometry is a MapPoint or a Polyline , the GeoEnrichment service will create a 1-mile ring buffer around the geometry to collect and append enrichment data. You can optionally change the ring buffer size or create drive-time service areas around the geometry by setting the options. In addition to this, there are three types of options you can set:
See the samples provided in the GeometryStudyArea API reference for further information.
Each country has its own standard geography levels. These geography levels are what gets passed in to the study area's comparisonGeographyLevels property. comparisonGeographyLevels allows you to request data for geography levels that intersect the study area. The Infographic displays the variables for those levels, this allows you to compare them against the study area variables. Please see the GeographyLevel API reference for additional information.
Last, the returnGeometry determines whether the geometry of your study area will be returned. Since we would like to show the study area with the results on map, set it to true.
For the full code used in the snippet above, see the Infographic sample.
Related variables infographic
Another type of infographic is RelatedVariables. This type displays values of multiple variables and the deviation with the comparison levels.
For the above sample, all that needed updated were a couple of properties in the Infographic. First, the Infographic's type property was modified to RelatedVariables. Next, thevariableIds property was updated to reflect multiple variables. In this example, it displays 'Households by Income' for various ranges.
///HouseholdsByIncome is the datacollectionID for all variables listed
If you wish to request all the variableIds in a data collection, you can do so using a wildcard (*). For example, HouseholdsByIncome.* would iterate through all the variables within the HouseholdsByIncome data collection.
The last type of infographic is Tapestry. Tapestry classifies US neighborhoods into 65 market segments based on socioeconomic and demographic factors. Please see Lifestyles-Esri Tapestry Segmentation data for additional information on how this works.
In this sample, we updated the Infographic's type property to Tapestry and updated its variableIds to reflect the Tapestry DataCollection's ID.
///Tapestry is the datacollectionID and variables defined with a wildcard
The InfographicsCarousel component requests GeoEnrichment data for a specified location and visualizes the results in a collection of Infographics. This collection of Infographics can be scrolled through via its 'next' (right arrow) and 'previous' (left arrow) buttons.
The following screen captures display an InfographicsCarousel that shows both related variables and tapestry types.
The code used to create the InfographicsCarousel is very similar to what is used when creating an Infographic.
This code snippet takes user input and returns GeoEnrichment data for a specified area. The InfographicsCarousel component is declared within the markup. The GeometryStudyArea is defined with its geometry set to the geometry specified by the user's input. The geography levels are also set to US: Admin3 (US.Counties), Admin2 (US.States), Admin1 (US.WholeUSA).
Once the carousel_enrichCompleteHandler event handler is fired, the resulting studyarea's geometry is set to the geometry of the graphic layer.
private function carousel_enrichCompleteHandler(event:InfographicEvent):void
//put the result geometry on the graphics layer
resultGeometry = event.studyAreaGraphics.geometry;
//zoom to the geometry
map.extent = resultGeometry.extent;
For the full code used in the snippet above, see the InfographicsCarousel sample.
Samples and additional references
To test out this functionality, see the samples:
- Infographic, this sample illustrates how to work with a simple 'one variable' Infographic with the option to specify a buffer.
- Compare Infographic types, this sample demonstrates how to work with IntersectingGeographies study area options. It also illustrates smaller skins for the Infographics. A bar chart is used for the 'one variable' type. This is displayed in the first screen capture at the top of this page.
- InfographicsCarousel, this sample illustrates how to work with the InfographicsCarousel with buffer options.
- InfographicsCarousel custom skin, this sample demonstrates how to work with the InfographicsCarousel using small and standard skin versions.
- Enriching a GeometryStudyArea, this sample allows you to choose a location, and then specify up to five variables to enrich the chosen location.
- Using StandardGeographyQueryTask, this sample describes how to work with the StandardGeographyQueryTask.
- Explore GeoEnrichment Data Coverage, this sample allows you to browse geography levels, data collections, and variables per country.
The links below provide additional help documentation when working with GeoEnrichment functionality:
- GeoEnrichment Service Overview topic situated in the ArcGIS REST API section Demographic and lifestyle attributes
- Developers.arcgis.com - GeoEnrichment
- Enriching your data via Esri Maps for Office
- Tapestry Segmentation in ArcGIS Online
- Infographic component API reference
- InfographicsCarousel API component API reference
- Supporting classes for the GeoEnrichment components
- Supporting classes for the GeoEnrichment service and related tasks