From f4a1e9368b20cfeeaa528f22af89bb6b2f94ad89 Mon Sep 17 00:00:00 2001 From: artemp Date: Wed, 4 Mar 2015 12:09:08 +0100 Subject: [PATCH] wkb_reader/json input grammar - correct polygons to have CCW exterioir/CW interior --- include/mapnik/json/geometry_util.hpp | 6 +++++- src/wkb.cpp | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/mapnik/json/geometry_util.hpp b/include/mapnik/json/geometry_util.hpp index 50ecf5718..8b42510fc 100644 --- a/include/mapnik/json/geometry_util.hpp +++ b/include/mapnik/json/geometry_util.hpp @@ -24,6 +24,9 @@ #define MAPNIK_JSON_GEOMETRY_UTIL_HPP #include +#include +// boost.geometry +#include namespace mapnik { namespace json { @@ -97,7 +100,8 @@ struct create_polygon if (i == 0) poly.set_exterior_ring(std::move(ring)); else poly.add_hole(std::move(ring)); } - + // correct oriantations etc + boost::geometry::correct(poly); geom_ = std::move(poly); } diff --git a/src/wkb.cpp b/src/wkb.cpp index d754836f3..f0ab1fdcb 100644 --- a/src/wkb.cpp +++ b/src/wkb.cpp @@ -27,6 +27,9 @@ #include #include #include +#include +// boost.geometry +#include namespace mapnik { @@ -318,6 +321,8 @@ private: if ( i == 0) poly.set_exterior_ring(std::move(ring)); else poly.add_hole(std::move(ring)); } + // correct orientations etc + boost::geometry::correct(poly); return poly; }