Add a logo and an attribution to your map
Esri requires that when an ArcGIS Online basemap is used in a web app, the map must include the Esri logo and attribution.
What it means
1.b.vii. Licensee may not remove or obscure any trademarks or logos that would normally be displayed through the use of the Online Services without written permission. If Licensee is using non-Esri application development tools to build applications that access Esri's Online Services, Licensee must include attribution acknowledging that its application is using Online Services provided by Esri. Guidelines are provided in the Documentation.
You are not allowed to remove any logos, trademarks, or other similar attributions displayed when any of the following occurs:
The Esri logo and the attribution must be on or near the map whenever an ArcGIS Online basemap is present. The recommended location is the lower right corner of the map, but you can move them as necessary.
You can download the logo and attribution and paste the information into your app, or you can request the logo and attribution each time a user opens your app. Note that the attribution is different for each basemap.
The Esri logo is available at the following location: http://static.arcgis.com/logos/logo-med.png.
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.
If you're uncertain how to generate dynamic attribution, a recommended place to begin is Leaflet's basemap source code. The specific methods to note are the following:
- Getting the attribute data—This method converts the attributions into an array of objects with attribution, bounds, min/max zoom, and score. It then sorts the resulting array by score.
- Updating the map attributions—This handled by looping over that array and checking if the map contains or intersects those bounds. If so, it zooms to and builds the resulting string.
If you are using Leaflet, multiple examples are available that include the logo and attribution. Many of the Leaflet examples also take advantage of dynamic attribution. As a user zooms and pans around, the attribution changes depending on the current extent. This reduces the amount of text in the attribution, and the attribution is always up to date.