summaryrefslogtreecommitdiff
path: root/src/location/declarativemaps/qgeosimplify_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/declarativemaps/qgeosimplify_p.h')
-rw-r--r--src/location/declarativemaps/qgeosimplify_p.h97
1 files changed, 11 insertions, 86 deletions
diff --git a/src/location/declarativemaps/qgeosimplify_p.h b/src/location/declarativemaps/qgeosimplify_p.h
index 567845de..1f5c9783 100644
--- a/src/location/declarativemaps/qgeosimplify_p.h
+++ b/src/location/declarativemaps/qgeosimplify_p.h
@@ -3,7 +3,7 @@
** Qt adaptation of geosimplify.js, https://github.com/mapbox/geosimplify-js, (c) 2017, Mapbox
**
** Copyright (C) 2020 Paolo Angelelli <paolo.angelelli@gmail.com>
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtLocation module of the Qt Toolkit.
@@ -54,96 +54,21 @@
// We mean it.
//
-#include <QtPositioning/QGeoCoordinate>
-#include <QtPositioning/private/qdoublevector2d_p.h>
-#include <QtPositioning/private/qwebmercator_p.h>
+#include <QtCore/QList>
QT_BEGIN_NAMESPACE
-class QGeoSimplify {
-protected:
- // Distance between two points in metres
- static double getDist(const QGeoCoordinate &p1, const QGeoCoordinate &p2);
+class QDoubleVector2D;
- // p, a and b are intended as "unwrapped" around the left bound
- static QDoubleVector2D closestPoint( const QDoubleVector2D &p,
- const QDoubleVector2D &a,
- const QDoubleVector2D &b);
-
- static QGeoCoordinate closestPoint( const QGeoCoordinate &pc,
- const QGeoCoordinate &ac,
- const QGeoCoordinate &bc,
- const double &leftBound);
-
- // Distance from a point to a segment (line between two points) in metres
- static double getSegDist(const QGeoCoordinate &pc,
- const QGeoCoordinate &ac,
- const QGeoCoordinate &bc,
- const double &leftBound);
-
- // doublevectors Intended as wrapped
- static double getSegDist(const QDoubleVector2D &p,
- const QDoubleVector2D &a,
- const QDoubleVector2D &b,
- const double &leftBound);
-
- static void simplifyDPStep(const QList<QGeoCoordinate> &points,
- const double &leftBound,
- int first,
- int last,
- double offsetTolerance,
- QList<QGeoCoordinate> &simplified);
-
- static double getDist(QDoubleVector2D a,
- QDoubleVector2D b,
- const double &leftBound);
-
- static void simplifyDPStep(const QList<QDoubleVector2D> &points,
- const double &leftBound,
- int first,
- int last,
- double offsetTolerance,
- QList<QDoubleVector2D> &simplified);
-
- static void simplifyDPStepZL(const QList<QDoubleVector2D> &points,
- const double &leftBound,
- int first,
- int last,
- int zoomLevel,
- QList<QDoubleVector2D> &simplified);
-
- // simplification using Ramer-Douglas-Peucker algorithm
- static QList<QGeoCoordinate> simplifyDouglasPeucker(const QList<QGeoCoordinate> &points,
- const double &leftBound,
- double offsetTolerance);
-
- static QList<QDoubleVector2D> simplifyDouglasPeucker(const QList<QDoubleVector2D> &points,
- const double &leftBound,
- double offsetTolerance);
-
- static QList<QDoubleVector2D> simplifyDouglasPeuckerZL(const QList<QDoubleVector2D> &points,
- const double &leftBound,
- int zoomLevel);
-
-public:
- /*
- offsetTolerance - how far outside the straight line a point
- needs to be for it to be "kept"
- */
- static QList<QGeoCoordinate> geoSimplify(const QList<QGeoCoordinate> &points,
- const double &leftBound,
- double offsetTolerance); // in meters
-
- static QList<QDoubleVector2D> geoSimplify(const QList<QDoubleVector2D> &points,
- const double &leftBound,
- double offsetTolerance); // in meters
-
- // This overload tries to be adaptive in the offsetTolerance across latitudes,
+namespace QGeoSimplify
+{
+ // offsetTolerance - how far outside the straight line a point
+ // needs to be for it to be "kept"
+ // This function tries to be adaptive in the offsetTolerance across latitudes,
// and return a simplification adequate for the given zoomLevel.
- static QList<QDoubleVector2D> geoSimplifyZL(const QList<QDoubleVector2D> &points,
- const double &leftBound,
- int zoomLevel); // in meters
-};
+ QList<QDoubleVector2D> geoSimplifyZL(const QList<QDoubleVector2D> &points,
+ double leftBound, int zoomLevel); // in meters
+}
QT_END_NAMESPACE