Using Qlik GeoAnalytics for QlikView
This user guide explains how to use some of the unique features in GeoAnalytics. More detailed information is available in the documentation of the properties for each product. Another source of information are the examples and guides. Often it is efficient to use one of the examples as a starting point.
GeoAnalytics consists of two parts; the extensions that provides the visualization and a connector that provide load time operations. Both parts are installed at the same time but you can choose which to use.
Concepts
Layers
The overall principle for GeoAnalytics is that the map and the various layers are separated in different components. The map and the data from Qlik displays on the GeoAnalytics map component but the dimensions and measures are connected to the layer components. The layer components automatically connect to the map component and display the data on it. If there are multiple maps on the page you need to specify which one the layer belongs to (Layer Options->Map ID).
The Map component is responsible for the background map and the layer components for application data on top of the map. There are several different layer components for different kinds of visualizations:
- Bubble Layer - symbols on points which can be colored and scaled by measures, also custom symbols and rotation is supported
- Line Layer - displays lines either from a start point to an end point or from geometries with breakpoints. Measures can control color and line width. Optionally lines can have arrows and be curved.
- Area Layer - shows areas in colors controlled by measures
- Heatmap Layer - displays point density with a color scale. Each point contributes to the intensity within a certain influence radius with a value that can come from a measure.
- Geodata Layer - visualizes background map data, either from a tile service or from a file, such as GeoJSON. The URL is an expression that is evaluated at each selection and data is reloaded when the URL changes. This way it can connect to external data services with dynamic data.
Locations
Locations of data can in GeoAnalytics be represented in several different ways. Locations are used for putting data on the map but also for analysis done at load time with the GeoAnalytics connector.
-
Location IDs are names of features that can be used instead of actual coordinates. These are sometimes called geokeys. They are typically names or codes of countries, regions, postal codes, airport codes etc. They are looked up in the GeoAnalytics Location Service, alternatively a geographic file (GeoJSON or GML) can be used for the mapping.
-
Geometries, Sense style, are strings of coordinates within brackets. For instance "[12, 57.7]" is a point, "[[12, 57.7], [121, 57.6]]" is a line etc. Note that longitude comes first in this format.
-
Latitude and Longitude values can be used directly in Bubble Layer and Line Layer.
Use settings under Location Options in each layer to control how locations are interpreted.
Load time operations with GeoAnalytics
GeoAnalytics comes with a connector. It provides several geographic operations that can be applied at load time. It also loads several types of geographic and non geographic data sources that the operations can be applied to. One type of data source is tables that are already loaded in Qlik. That way operations can be applied to loaded data.
The connector has a wizard that lets you choose operation and then provides fields for operation parameters and data sources to apply the operation at. Example of operations are:
- Within - returns a table with relations between geometries in one dataset to geometries that contains them in another dataset.
- Closest - returns a table with relations between geometries in one dataset to the closest geometry in another dataset.
- Dissolve - creates custom areas based on smaller areas.
- Cluster - calculates clusters from a point dataset.
- Binning - aggregates points in a rectangular or hexagonal grid.
Visualization
Drill-down
Drill down hierarchies can be visualized in 2 ways. If the data in the different levels is of same kind (like all are areas) and should be visualized in the same way, a single layer can be used.
Use the drill-down as dimension and add measures as usual. The dimension can be a location id, geometry or just an id. When selecting a single object (in the map or outside the map) the next level will be displayed automatically.
If you want to display different drill-down levels differently you can restrict a layer to be displayed in just some levels. Write the levels you want the layer to be displayed, separated with commas, in Layer Options->Restrict Drill Down. The drill-down must be the dimension. Then add other layers that are restricted to other drill-down levels.
Binning - visualize large point datasets
Binning is a technique to cluster point data in regularly shaped areas such as rectangles or hexagon. The purpose can be to get a less cluttered aggregated view of the data or increase performance. Binning is often configured so that different binning is displayed in different scales and the actual data may be displayed when zooming in.
Binning in GeoAnalytics is available in the GeoAnalytics connector. In QlikView edit the script and chose to connect to the IdevioGeoAnalyticsConnector in the Data-tab. Then chose to "Select Data" to enter the wizard.
In the wizard you can chose between Rectangular and Hexagonal bins and the size of the bins. The size is specified in degrees, one degree is approximately 100000 m. Good width-height-ratios varies depending on latitude. The default value is appropriate around latitude +-48 deg. For areas around +-60 deg use width-height-ratio 2 and near the equator 1. That is if you want near square bins.
Chose a Loaded Table as the dataset type and fill in the name of the table you want to apply binning to. Enter the necessary fields for the data. If you have not loaded the data chose another type.
Binning is often combined with techniques for displaying different aggregated data in different scales such as drill-down or select visible, see more in respective section.
Tuning the base map
The first choice is to select which base map to use. This is done in the map settings at: Map Settings->Base Map
With the default and plain base maps you can select which layers should be visible by bringing up the layer control by checking: Interaction and Controls->Show Layer Control
When the layer control is visible on the map you can choose which layers that should be displayed.
Some layers comes in both an English and a local version. Layers ending in Eng contains English text and the others text in the local language. For instance, there is both a Borders and a BordersEng layer. Make sure only one of them is checked.
The visibility state of each layer is saved with the app so you can hide it when you are satisfied with the tuning.
Localization of labels in base map
See Tuning the base map.
Labels and pop-Ups
All layers that have measures can display labels next to the object. Labels can be any expression and for Bubble Layer the placement is configurable, see settings under Appearance->Label. Note that labels a single line texts without formatting codes.
Info bubbles are by default shown when hovering or clicking on an object. The default text contains the dimensions and measures. It can however be configured to display any html and is produced by an expression that composes the html string. The settings for the Info Bubble are found at Appearance>Info Bubble.
To build more customized behavior links and buttons can be used in the Info Bubbles. This is one place where a Qlik app can be integrated with other systems. A click at a button could for instance bring up another system displaying information about the selected feature.
Security
What data is transferred to the server from the map extension?
This applies to users using GeoAnalytics servers hosted in cloud, not users with own server installations.
When using the Location Service the Location IDs are sent to our servers for lookup. However we don't log any of the location data. All we log is meta data (i.e. we log that a lookup has been made but not what was looked up).
Also when using the 'Load via Server' option to load files (GeoJSON for example) in any of our layers that data is retrieved by our server in order to serve it to the user. Same thing here though, we don't log any of the data in the GeoJSON file or what is used to do the lookup in the GeoJSON file. We only log that a transaction has been made.
The extensions don't send any user information except for the license key in order to verify that the user has a valid license and we log those transactions of course.
To put it simply, when using the Location Service or when using 'Load via Server' we log that transactions have been made but not any of the data/information related to said transactions. In other words we don't log any user sensitive information.
What data is transferred to the server from the GeoAnalytics connector?
Using the standard connector, all datasets involved and all operation parameters are transferred to the server. However the server does not log any of the data. All that is logged is meta data (i.e. we log that an operation has been made but not the data).
When using GeoAnalytics Plus, data is sent to the server in fewer cases. Only data for lookup operations (standard areas and points, addresses, IP-lookups) and routing operations is sent to the server. All other operations take place locally and no data is transferred.
Misc
Coordinate systems
If you have lots of coordinates in another coordinate system than WGS-84 it might be efficient to run GeoAnalytics in another coordinate system. You then need to provide a background map in that coordinate system, either a tile service or a simple vector file.
To specify that you are using a non standard coordinate system, switch the base map in Map Settings to either 'Empty (undefined meters)' or 'Empty (WGS-84)', depending on if your coordinate system uses meters or degrees as length unit.
Then use a GeoData Layer to display your background map. See the reference documentation how you add an external tile service or a vector file like GeoJSON.
Now layers will expect coordinates to be in the same coordinate system as your background map. Note that the location service currently is limited to WGS-84.