Aggregation is available since Version 11.37.0-Unstable2.
Spatial aggregation is a process of splitting data into groups based on localization. Dynamic means the aggregation process is repeated every time the map is redrawn, e.g., zoom change, extent change, or layer edition.
This functionality empowers a new approach to analyzing, interpreting, and managing maps. It also solves the problem of large dataset visualization.
The TatukGIS Developer Kernel (DK) provides three main types of aggregation, as follows:
To enable dynamic aggregation, simply assign an instance of the aggregator class to
TGIS_LayerVector.DynamicAggregator property. The aggregator behaviour can be controlled using properties:
RadiusAsText- a radius within which shapes will be grouped; use similar as
Sizefrom Params section. Using Param AsText syntax is preferred.
Threshold- minimum number of shapes to form a group.
The easiest way to play with aggregation is via Layer's properties form:
Binning methods use polygons to represent original shapes. The most common bin shapes are square and hexagon. In brief, the binning process involves a few steps:
Thresholdproperty can be used to eliminate irrelevant bins. If
Threshold=0, an empty bin will be shown.
Historically, binning was applied only for point datasets. Because TatukGIS does not wish to introduce unnecessary restrictions, nothing stands in the way of using binning with other vector data types, i.e., polylines or polygons. In this case, shape's centroid is considered.
DK has implemented following binning methods, based on the following grids:
Radiusproperty defines the length of the radius of the circle inscribed in a square. In other words, it is the half of the length of an edge of the square. See more: TGIS_AggregatorBinningSquare class.
For hexagons, the
Radius property defines the length of the radius of the circle inscribed in a hexagon. More precisely, it is the height of the equilateral triangle which constructs the hexagon.
As discussed in this specification, clustering refers to the process of reducing and summarizing large datasets to provide better readability of the map, regardless of scale.
The main difference when compared to binning is clustering allows original and clustered data to coexist on the map. Depending on the parameters, such as
Threshold, clusterization creates new virtual shapes that represent groups of original shapes from the layer. These shapes are not drawn. The remaining shapes which are not clustered, behave as normal. As a result, both clustered and non-clustered shapes are visible on the map.
The following clustering methods are available in TatukGIS Developer Kernel:
The above methods create clusters in grid positions, similarly to corresponding binning methods.
Working with datasets that contain dense packed shapes, i.e., point clouds, can be challenging. Very often we do not need to see all the elements that compose the layer.
Broadly speaking, this method simplifies an original vector layer, so its contents can be visualized in fast and effective way. Shapes transmitted to display are chosen based on distance from
Radius. It’s recommended to use map units, i.e., pixels, points, etc., to define the
Threshold property is ignored. This method works only for points for now.
For more about
ShapeReduction, see: TGIS_AggregatorShapeReduction class.
Delphi and C++ developers wanting to use dynamic aggregation functionality, e.g.:
must add to the project one of the following units: GisAggregator, GisAllLayers, or GisAllBasicLayers.