summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2016-12-20 14:54:11 -0200
committerThiago Marcos P. Santos <thiago@mapbox.com>2017-01-24 11:36:59 +0200
commitb39fc1146f1b4f02d03ed40957241205ea83c3c6 (patch)
tree85ce7a8f1ba462c1365a850c9424af6c3ba599e2
parentfac44fb93c40517a401bb139a1c1861f000ceff0 (diff)
downloadqtlocation-mapboxgl-b39fc1146f1b4f02d03ed40957241205ea83c3c6.tar.gz
[gcc4.9] Make geojson-vt-cpp GCC4.9 compatible
-rw-r--r--src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp10
-rw-r--r--src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp49
2 files changed, 55 insertions, 4 deletions
diff --git a/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp b/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp
index b758be3929..b23e753b3f 100644
--- a/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp
+++ b/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp
@@ -27,7 +27,17 @@ struct ToFeatureCollection {
return { value };
}
feature_collection operator()(const geometry& value) const {
+#if !defined(__GNUC__) || __GNUC__ >= 5
return { { value } };
+#else
+ feature feat;
+ feat.geometry = value;
+
+ feature_collection collec;
+ collec.push_back(std::move(feat));
+
+ return collec;
+#endif
}
};
diff --git a/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp b/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp
index 11ced052e8..365c9445e6 100644
--- a/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp
+++ b/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp
@@ -95,19 +95,42 @@ private:
}
void addFeature(const vt_point& point, const property_map& props) {
+#if !defined(__GNUC__) || __GNUC__ >= 5
tile.features.push_back({ transform(point), props });
+#else
+ mapbox::geometry::feature<int16_t> feature;
+ feature.geometry = transform(point);
+ feature.properties = props;
+ tile.features.push_back(std::move(feature));
+#endif
}
void addFeature(const vt_line_string& line, const property_map& props) {
const auto new_line = transform(line);
- if (!new_line.empty())
+ if (!new_line.empty()) {
+#if !defined(__GNUC__) || __GNUC__ >= 5
tile.features.push_back({ std::move(new_line), props });
+#else
+ mapbox::geometry::feature<int16_t> feature;
+ feature.geometry = std::move(new_line);
+ feature.properties = props;
+ tile.features.push_back(std::move(feature));
+#endif
+ }
}
void addFeature(const vt_polygon& polygon, const property_map& props) {
const auto new_polygon = transform(polygon);
- if (!new_polygon.empty())
+ if (!new_polygon.empty()) {
+#if !defined(__GNUC__) || __GNUC__ >= 5
tile.features.push_back({ std::move(new_polygon), props });
+#else
+ mapbox::geometry::feature<int16_t> feature;
+ feature.geometry = std::move(new_polygon);
+ feature.properties = props;
+ tile.features.push_back(std::move(feature));
+#endif
+ }
}
void addFeature(const vt_geometry_collection& collection, const property_map& props) {
@@ -127,18 +150,36 @@ private:
case 0:
break;
case 1:
+#if !defined(__GNUC__) || __GNUC__ >= 5
tile.features.push_back({ std::move(new_multi[0]), props });
+#else
+ {
+ mapbox::geometry::feature<int16_t> feature;
+ feature.geometry = std::move(new_multi[0]);
+ feature.properties = props;
+ tile.features.push_back(std::move(feature));
+ }
+#endif
break;
default:
+#if !defined(__GNUC__) || __GNUC__ >= 5
tile.features.push_back({ std::move(new_multi), props });
+#else
+ {
+ mapbox::geometry::feature<int16_t> feature;
+ feature.geometry = std::move(new_multi);
+ feature.properties = props;
+ tile.features.push_back(std::move(feature));
+ }
+#endif
break;
}
}
mapbox::geometry::point<int16_t> transform(const vt_point& p) {
++tile.num_simplified;
- return { static_cast<int16_t>(std::round((p.x * z2 - x) * extent)),
- static_cast<int16_t>(std::round((p.y * z2 - y) * extent)) };
+ return { static_cast<int16_t>(::round((p.x * z2 - x) * extent)),
+ static_cast<int16_t>(::round((p.y * z2 - y) * extent)) };
}
mapbox::geometry::multi_point<int16_t> transform(const vt_multi_point& points) {