QGA can consume geodata from many different sources, here's what's needed to use a TMS a background map in QGA.
Start with specifying the source. In this case the source is a TMS from ArcGIS Online: World_Topo_Map.
- The TMS service is specified as a url with parameters for X, Y as Z, which specifies the position of the map image and the scale level. At ArcGIS Online the start tile is defined as: https://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/tile/0/0/0 with z, y, x as the order of the last parameters.
- Exchange the last part of the parameters and format as a string, this is the Tile Service URL:
- Create a map view and a geodata layer
- For the geodata layer specify the Tile Service URL and Source format: TMS and Tile Size: 256.
- Don't forget to include the copyright text some where in the app, in this case the attribution should be:
Sources: Esri, HERE, DeLorme, Intermap, increment P Corp., GEBCO, USGS, FAO, NPS, NRCAN, GeoBase, IGN, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), swisstopo, MapmyIndia, © OpenStreetMap contributors, and the GIS User Community
See also the two attachments, example apps for Qlik Sense and QlikView.¨
Authentication in ArcGIS
Special note regarding Authentication in ArcGIS (Thanks to ssamuels for the solution)
The authentication when working with secured map services from ESRI can be solved by setting up a REST connection in the loadscript to retrieve a new access token from the REST API of ArcGIS Online. This is done by sending a GenerateToken request to the URL "https://www.arcgis.com/sharing/generateToken?parameters". The REST call must be a POST request over https and takes the following parameters:
username - Username of the user who wishes to get a token.
password - Password of user who wishes to get a token.
referer - The base URL of the web application that will invoke the services
expiration - The token expiration time in minutes (default value for this parameter is 60 minutes)
f - The response format. The value for this parameter must be "json".
The resulting access token is stored in the data model and can be used as a text variable to append to the location service url in the GeoAnalytics extension.