Esri requires that when you use ArcGIS basemaps, ArcGIS data services, or ArcGIS 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, data layers), when you use specific data hosted by ArcGIS location services that require attribution.
- Esri attribution, using Powered by Esri, when your app is built with Esri API technology or uses ArcGIS location services.
If your application uses data served by Esri through ArcGIS Location Services, 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.
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 APPIs, 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 implementation 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
copyrightTextstring. 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.
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", Helvetica,Arial,sans-serif;
- Words inside the attribution use color
#323232at 100% opacity.
- Background fill color
#ffffffat 65% opacity.
- Font family:
Bottom of map
Top of map
Helper methods may be provided with the specific API used to build your app. Refer to the API reference below.
Mapping API reference provided by ArcGIS Runtime API for Android
Mapping API reference provided by ArcGIS Runtime API for iOS
Mapping API reference provided by ArcGIS Runtime API for Java
Mapping API reference provided by ArcGIS Runtime API for .NET
Mapping API reference provided by ArcGIS Runtime API for Qt
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.
_getAttributionDataConverts the attributions into an array of objects with attribution, bounds, min/max zoom and score. It then sorts the resulting array by score.
_updateMapAttributionUpdating 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.