File indexing completed on 2024-05-12 04:42:47
0001 /* 0002 SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KPUBLICTRANSPORT_GEOJSON_P_H 0008 #define KPUBLICTRANSPORT_GEOJSON_P_H 0009 0010 #include <vector> 0011 0012 class QJsonObject; 0013 class QPointF; 0014 class QPolygonF; 0015 0016 namespace KPublicTransport { 0017 0018 /** GeoJSON utilities. */ 0019 namespace GeoJson 0020 { 0021 /** Coordinate of a point geometry object. */ 0022 QPointF readPoint(const QJsonObject &obj); 0023 0024 /** Reads a line string object. */ 0025 QPolygonF readLineString(const QJsonObject &obj); 0026 0027 /** Outer path of a polygon or multi-polygon geometry object. 0028 * Multiple outer polygons are united. 0029 */ 0030 QPolygonF readOuterPolygon(const QJsonObject &obj); 0031 /** Outer paths of a polygon or multi-polygon geometry object. */ 0032 std::vector<QPolygonF> readOuterPolygons(const QJsonObject &obj); 0033 0034 /** Creates a line string object. */ 0035 QJsonObject writeLineString(const QPolygonF &lineString); 0036 0037 /** Create a polygon object. */ 0038 QJsonObject writePolygon(const QPolygonF &polygon); 0039 /** Create a multi-polygon object. */ 0040 QJsonObject writePolygons(const std::vector<QPolygonF> &polygons); 0041 } 0042 0043 } 0044 0045 #endif // KPUBLICTRANSPORT_GEOJSON_P_H