ImagingTools Core SDK
CClusterCreator.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ACF includes
6#include <istd/IPolymorphic.h>
7
8// ImtCore includes
9#include <imtbase/CTreeItemModel.h>
10#include <imtgeo/CPosition.h>
11#include <imtgeo/CCluster.h>
12
13namespace imtgeo
14{
15
16
17class CClusterCreator: virtual public istd::IPolymorphic
18{
19public:
20
21 CClusterCreator();
22 ~CClusterCreator();
23
24protected:
25 QPair<double, double> coordToMercator(const QGeoCoordinate &coord) const;
26 double getDistanceBetweenObjects(const QGeoCoordinate &coord1, const QGeoCoordinate &coord2) const;
27 double getDistanceLimitCoeff(double zoomLevel) const;
28 imtbase::CTreeItemModel* createMapClusterModel(imtbase::CTreeItemModel* model, double zoomLevel, double limitInPixels = 50)const;
29 QList<CCluster*> createMapClusters(const QList<CPositionIdentifiable*>& objectList, double zoomLevel, double limitInPixels = 50)const;
30 QList<CCluster*> convertToMapClusters(const QList<CPositionIdentifiable*>& objectList, double zoomLevel)const;
31
32private:
33
34};
35
36} // namespace imtgeo
37
38
39