Whenever you use ArcGIS basemaps, ArcGIS data services, or ArcGIS API technology in your app, Esri requires that you must include Esri attribution. There are specific requirements for attribution that you might also be required to address in your app that can vary depending upon how your app is built and what data it uses:
- Data attribution: Includes basemaps and data layers, and requires that you provide correct attribution whenever you use specific data hosted by ArcGIS location services.
- Esri attribution: Requires using Powered by Esri attribution 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 Powered by Esri attribution correctly on the map. For example, the following image displays attribution at the bottom right of the map. Refer to these maps on ArcGIS Online for more examples.
These requirements are somewhat flexible in order to provide the broadest scope when creating your app, but still adhere to the principles of fair attribution. You are required to attribute Esri in your app using the following guidelines:
- ArcGIS Runtime APIs (Android, iOS, Java, .NET, Qt): The default implementation places attribution at the bottom of the map. If this does not work with your app's design, there are APIs to place attribution elsewhere in the MapView. See implementation for more information.
- Bottom of the map: 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 if necessary. Note that the attribution is different for each basemap.
- Do not obstruct attribution: 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 adhering to correct attribution per these guidelines.
- Dynamic attribution: Your app should also take advantage of dynamic attribution. As a user zooms and pans around the map, the attribution should change depending on the current extent. This reduces the amount of text in the attribution.
- Where to find attribution: The attribution for a basemap is available in its 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 to implement your own attribution, please follow these guidelines:
- Place 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 can choose a font and color scheme that matches your app design as long as you follow the above requirements. Your implementation should be legible and meet all other 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.