Skip to main content

Setting up a Esri ArcGIS WFS source as a layer in Qlik GeoAnalytics (QGA)

No ratings
cancel
Showing results for 
Search instead for 
Did you mean: 
Patric_Nordstrom
Employee
Employee

Setting up a Esri ArcGIS WFS source as a layer in Qlik GeoAnalytics (QGA)

Last Update:

Apr 2, 2021 4:20:45 AM

Updated By:

Patric_Nordstrom

Created date:

Apr 21, 2017 4:55:05 AM

Attachments

QGA can consume geodata from many different sources including Esri ArcGIS online, here's what's needed to show the data as a feature layer in QGA.

Step-by-step guide

Start by figuring out the correct parameters. In this case the source is administrative boundaries (Buurt) of the Dutch city Zwolle.

  1. Usually an base url is given like this (https://services1.arcgis.com/3YlK2vfHGZtonb1r/ArcGIS/rest/services/Zwolle_WijkBuurt_gdb/FeatureServe...), follow and click on "Query" at the bottom
  2. Set parameters Where 1=1, Outfield BRTNR (this is the field we want to use as index) in, and set the output to geojson and clicked Query (Get)
  3. Try out the the geojson in geojson.io, realise that projection needs to be 4326 (WGS84), changed the url param : outSR=4326.

    Note!
    If you want to use the builtin basemap, the geojson layer should be in WGS84 -> EPSG:4326

  4. And voilá a valid geojson url! https://services1.arcgis.com/3YlK2vfHGZtonb1r/ArcGIS/rest/services/Zwolle_WijkBuurt_gdb/FeatureServe...
  5. Check that the geojson works by setting it up as a static geodata layer.
  6. Then make a area layer with the geojson as input, BRTNR as dimension.I checked the geojson and used BRTNR as the "Source key attribute".

    geodata_settings.png
    See the attached Sense app for more details. Note 1, this example requires Qlik GeoAnalytics. Note 2, this app features data from an external service which might be out of service.

 

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.

Labels (2)
Comments
ssamuels
Partner - Creator
Partner - Creator

Hi Patrick,

I wanted to share this information with you and other community members, because it might be of value.

I managed to solve the authentication issue when working with secured map services from ESRI, 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.

Patric_Nordstrom
Employee
Employee

Excellent, thanks a lot! I will add that to the article.

0 Likes
Anonymous
Not applicable

Hi Samuels,

Can you please share the screenshots of your work?

I am also having trouble in fetching the data directly from ARCGIS (may be because of authentication) but when I fetch the same exported geojson file from another source (dropbox), it's working fine.

Error while fetching directly from ARCGIS is also attached :

Error 2.png

0 Likes
ssamuels
Partner - Creator
Partner - Creator

Hi Jahanzaib,

I did not use the GeoAnalytics Connector to extract data from ArcGIS. I followed the instruction provided by Patric Nordström at the top of this post to call the location service URL directly in the extension. The URL points to a secured feature layer in ArcGIS Online, therefore you need to include an access token in the URL as parameter. I only used the script in my app to set up a connection to the ArcGIG REST API with the Qlik REST Connector, to retrieve a new temporary access token .

0 Likes
Anonymous
Not applicable

Samuels,

Can you please share the screenshots of the REST API connector with parameters?

Thanks

0 Likes
ssamuels
Partner - Creator
Partner - Creator

Here you go!

Capture.PNG

0 Likes
Anonymous
Not applicable

Thanks alot

0 Likes
Patric_Nordstrom
Employee
Employee

Hi Jahanzaib, fyi, looking at the response, it doesn't look like your Arcgis server responded properly,

"Connection timed out"

Anonymous
Not applicable

Hi Patric,

Thanks for your reply, Do you have any idea why ArcGIS server is not responding properly? Not even in client's own premises !

0 Likes
Patric_Nordstrom
Employee
Employee

Jahanzaib,

Is your ArcGIS server public available or is it an internal resource?

To access local resources you need Qlik GeoAnalytics Plus or Enterprise.

Thanks,

Patric

Version history
Last update:
‎2021-04-02 04:20 AM
Updated by: