diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-02-07 14:58:55 +0200 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-02-08 17:36:32 +0200 |
commit | d9ae8d3fbfdcab9001acf7c3f6b49130211dd8c9 (patch) | |
tree | c215dc6326d9962ef51ea2fa1cae1490467a9137 | |
parent | 45b4c64a5e6429e984e375d30d2d3804df81d004 (diff) | |
download | qtlocation-mapboxgl-d9ae8d3fbfdcab9001acf7c3f6b49130211dd8c9.tar.gz |
[Qt] Moved GeoJSON-related conversion functions to qt_geojson.hpp
-rw-r--r-- | platform/qt/src/qmapboxgl.cpp | 41 | ||||
-rw-r--r-- | platform/qt/src/qt_conversion.hpp | 2 | ||||
-rw-r--r-- | platform/qt/src/qt_geojson.hpp | 47 |
3 files changed, 49 insertions, 41 deletions
diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index bc5cd1daae..e23f97f679 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -841,47 +841,6 @@ void QMapboxGL::setTransitionOptions(qint64 duration, qint64 delay) { } mbgl::ShapeAnnotationGeometry asMapboxGLGeometry(const QMapbox::ShapeAnnotationGeometry &geometry) { - auto asMapboxGLLineString = [&](const QMapbox::Coordinates &lineString) { - mbgl::LineString<double> mbglLineString; - mbglLineString.reserve(lineString.size()); - for (const auto &coordinate : lineString) { - mbglLineString.emplace_back(mbgl::Point<double> { coordinate.second, coordinate.first }); - } - return mbglLineString; - }; - - auto asMapboxGLMultiLineString = [&](const QMapbox::CoordinatesCollection &multiLineString) { - mbgl::MultiLineString<double> mbglMultiLineString; - mbglMultiLineString.reserve(multiLineString.size()); - for (const auto &lineString : multiLineString) { - mbglMultiLineString.emplace_back(std::forward<mbgl::LineString<double>>(asMapboxGLLineString(lineString))); - } - return mbglMultiLineString; - }; - - auto asMapboxGLPolygon = [&](const QMapbox::CoordinatesCollection &polygon) { - mbgl::Polygon<double> mbglPolygon; - mbglPolygon.reserve(polygon.size()); - for (const auto &linearRing : polygon) { - mbgl::LinearRing<double> mbglLinearRing; - mbglLinearRing.reserve(linearRing.size()); - for (const auto &coordinate: linearRing) { - mbglLinearRing.emplace_back(mbgl::Point<double> { coordinate.second, coordinate.first }); - } - mbglPolygon.emplace_back(std::move(mbglLinearRing)); - } - return mbglPolygon; - }; - - auto asMapboxGLMultiPolygon = [&](const QMapbox::CoordinatesCollections &multiPolygon) { - mbgl::MultiPolygon<double> mbglMultiPolygon; - mbglMultiPolygon.reserve(multiPolygon.size()); - for (const auto &polygon : multiPolygon) { - mbglMultiPolygon.emplace_back(std::forward<mbgl::Polygon<double>>(asMapboxGLPolygon(polygon))); - } - return mbglMultiPolygon; - }; - mbgl::ShapeAnnotationGeometry result; switch (geometry.type) { case QMapbox::ShapeAnnotationGeometry::LineStringType: diff --git a/platform/qt/src/qt_conversion.hpp b/platform/qt/src/qt_conversion.hpp index e49b6dbe3e..ae05200d66 100644 --- a/platform/qt/src/qt_conversion.hpp +++ b/platform/qt/src/qt_conversion.hpp @@ -4,6 +4,8 @@ #include <mbgl/util/feature.hpp> #include <mbgl/util/optional.hpp> +#include <QMapbox> + #include <QColor> #include <QVariant> diff --git a/platform/qt/src/qt_geojson.hpp b/platform/qt/src/qt_geojson.hpp index 07813623fd..f01db51bf7 100644 --- a/platform/qt/src/qt_geojson.hpp +++ b/platform/qt/src/qt_geojson.hpp @@ -4,12 +4,59 @@ #include <mbgl/style/conversion/geojson.hpp> #include <mbgl/util/rapidjson.hpp> +#include <QMapbox> + #include <QByteArray> #include <QVariant> #include <sstream> #include <string> +namespace QMapbox { + +mbgl::LineString<double> asMapboxGLLineString(const QMapbox::Coordinates &lineString) { + mbgl::LineString<double> mbglLineString; + mbglLineString.reserve(lineString.size()); + for (const auto &coordinate : lineString) { + mbglLineString.emplace_back(mbgl::Point<double> { coordinate.second, coordinate.first }); + } + return mbglLineString; +}; + +mbgl::MultiLineString<double> asMapboxGLMultiLineString(const QMapbox::CoordinatesCollection &multiLineString) { + mbgl::MultiLineString<double> mbglMultiLineString; + mbglMultiLineString.reserve(multiLineString.size()); + for (const auto &lineString : multiLineString) { + mbglMultiLineString.emplace_back(std::forward<mbgl::LineString<double>>(asMapboxGLLineString(lineString))); + } + return mbglMultiLineString; +}; + +mbgl::Polygon<double> asMapboxGLPolygon(const QMapbox::CoordinatesCollection &polygon) { + mbgl::Polygon<double> mbglPolygon; + mbglPolygon.reserve(polygon.size()); + for (const auto &linearRing : polygon) { + mbgl::LinearRing<double> mbglLinearRing; + mbglLinearRing.reserve(linearRing.size()); + for (const auto &coordinate: linearRing) { + mbglLinearRing.emplace_back(mbgl::Point<double> { coordinate.second, coordinate.first }); + } + mbglPolygon.emplace_back(std::move(mbglLinearRing)); + } + return mbglPolygon; +}; + +mbgl::MultiPolygon<double> asMapboxGLMultiPolygon(const QMapbox::CoordinatesCollections &multiPolygon) { + mbgl::MultiPolygon<double> mbglMultiPolygon; + mbglMultiPolygon.reserve(multiPolygon.size()); + for (const auto &polygon : multiPolygon) { + mbglMultiPolygon.emplace_back(std::forward<mbgl::Polygon<double>>(asMapboxGLPolygon(polygon))); + } + return mbglMultiPolygon; +}; + +} // namespace QMapbox + namespace mbgl { namespace style { namespace conversion { |