Esri requires that when you use an ArcGIS Online basemap, Esri data services, or Esri API technology in your app you must also include Esri attribution.
There are specific requirements for attribution you may be required to address in your app depending on how your app is built and the data it uses.
- Data attribution (basemaps, layers), when you use specific data hosted on ArcGIS Online that requires attribution.
- Esri attribution, using
Powered by Esri, when your app is built with Esri SDK technology or uses Esri services.
Display attribution on the map
If your application uses data served by Esri through ArcGIS Online, you must display attribution on the map. For example, this image displays the attribution at the bottom of the map. Refer to one of the maps on ArcGIS Online for more examples.
You are not allowed to remove any logos, trademarks, copyright notices, or other similar attribution displayed when:
- Using any Esri service. This can include services such as map services (e.g. basemaps), credit-based services (e.g. routing), or any other service created and hosted by Esri.
- Using any service that is hosted via ArcGIS Online.
- Accessing a service that a customer published from their own on-premise ArcGIS Enterprise, and then registered in ArcGIS Online. For example, company ABC published their own services via ArcGIS Enterprise and then registered those services with ArcGIS Online. They then use the services within an application. ABC's services from ArcGIS Online would require the proper attribution in the application.
- Using Esri services with third party application development tools. To do this, you must add all appropriate and pertinent attribution. For an overall idea of implementing attribution when using a third party API, please refer to the section below describing how Esri Leaflet handles attribution.
We provide a lot of flexibility so that these requirements do not get in the way of you building a great app.
You are required to attribute Esri in your app using the following guidelines:
- When using any of the ArcGIS Runtime SDKs, the default implementation places attribution at the bottom of the map. If this does not work with the design for your app then there are APIs to place attribution elsewhere in the MapView. See below for more information.
- The Esri attribution must be on or near the map whenever an ArcGIS Online basemap is present. The recommended location is at the bottom of the map, but you can move it as necessary.
- If the user interface design of your implementation will remove or obscure our attribution, then you are required to display it by some other means following these guidelines.
- Your app should also take advantage of dynamic attribution. As a user zooms and pans around the map, the attribution changes depending on the current extent. This reduces the amount of text in the attribution. Also, the attribution is always up to date.
- Note that the attribution is different for each basemap.
- The attribution for a basemap is available in the service metadata. For example, the request for World Imagery metadata is http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer?f=pjson. The information you need is in the copyrightText string. In this example, the attribution is Source: Esri, DigitalGlobe, GeoEye, i-cubed, Earthstar Geographics, CNES/Airbus DS, USDA, USGS, AEX, Getmapping, Aerogrid, IGN, IGP, swisstopo, and the GIS User Community.
- If you choose a static option of copying the information into your app, be aware that the attribution changes on a regular basis. You should regularly review the attribution, such as when you update your app.
Custom attribution requirements
When you choose to implement your own attribution please follow these guidelines:
- Place the attribution directly on the map where it is always visible when the map is visible.
- Do not apply transparency to the attribution text.
- Do not overlap with another logo or visual component (excluding elements of the map.)
- You may choose a font and color scheme to match your app design as long as you follow the above requirements. Your implementation should be legible and meet accessibility guidelines.
- To mimic our default design use the following attributes:
- Font family:
"Avenir Next W00","Helvetica Neue",
- Words inside the attribution use color
#323232 at 100% opacity.
- Background fill color
#ffffff at 65% opacity.
Helper methods may be provided with the specific SDK used to build your app. Refer to our SDK guides below.
When choosing to use a static attribution, pick up the attribution text from the REST endpoint JSON response in the
copyrightText attribute. For example, the request for World Imagery metadata is http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer?f=json. The URL is specific to the basemap used in your app. See ArcGIS REST Services Directory for a list of services.
For an example of generating dynamic attribution, refer to the associated methods in Esri Leaflet's source code.
_getAttributionData Converts the attributions into an array of objects with attribution, bounds, min/max zoom and score. It then sorts the resulting array by score.
_updateMapAttribution Updating the map attributions is handled by looping over that array and checking if the map contains or intersects those bounds. If so, it zooms and builds the resulting string.