update to latest test data
This commit is contained in:
commit
799178c7cc
6 changed files with 37 additions and 46 deletions
|
@ -36,7 +36,11 @@ Released: xx-xx-xx
|
||||||
- Added support for quantising small (less than 3 pixel) images (ref #3466)
|
- Added support for quantising small (less than 3 pixel) images (ref #3466)
|
||||||
- Added support for natural logarithm function in expressions (ref #3475)
|
- Added support for natural logarithm function in expressions (ref #3475)
|
||||||
- Improved logic determining if certain compiler features are available e.g `inheriting constructors` (MSVC)
|
- Improved logic determining if certain compiler features are available e.g `inheriting constructors` (MSVC)
|
||||||
- GeoJSON - corrected quoting in `stringgifird` objects (ref #3491)
|
- GeoJSON - corrected quoting in `stringify` objects (ref #3491)
|
||||||
|
- GeoJSON - ensured consistent ordering of attribute descriptors (ref #3494)
|
||||||
|
- GeoJSON - exposed `num_features_to_query` as datasource paramer (ref #3495)
|
||||||
|
- Replaced `boost::mpl::vector<Types...>` with `std::tuple<Types...>` (ref #3503)
|
||||||
|
- BuildingSymbolizer - fixed closing segment of polygon in building symbolizer (ref #3505)
|
||||||
|
|
||||||
## 3.0.11
|
## 3.0.11
|
||||||
|
|
||||||
|
|
|
@ -52,18 +52,4 @@
|
||||||
|
|
||||||
#define PROJ_ENVELOPE_POINTS 20
|
#define PROJ_ENVELOPE_POINTS 20
|
||||||
|
|
||||||
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
|
||||||
|
|
||||||
#ifndef BOOST_MPL_LIMIT_VECTOR_SIZE
|
|
||||||
#define BOOST_MPL_LIMIT_VECTOR_SIZE 30
|
|
||||||
#else
|
|
||||||
#warning "WARNING: BOOST_MPL_LIMIT_VECTOR_SIZE is already defined. Ensure config.hpp is included before any Boost headers"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef BOOST_MPL_LIMIT_LIST_SIZE
|
|
||||||
#define BOOST_MPL_LIMIT_LIST_SIZE 30
|
|
||||||
#else
|
|
||||||
#warning "WARNING: BOOST_MPL_LIMIT_LIST_SIZE is already defined. Ensure config.hpp is included before any Boost headers"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // MAPNIK_CONFIG_HPP
|
#endif // MAPNIK_CONFIG_HPP
|
||||||
|
|
|
@ -38,9 +38,10 @@ namespace detail {
|
||||||
template <typename F1, typename F2, typename F3>
|
template <typename F1, typename F2, typename F3>
|
||||||
void make_building(geometry::polygon<double> const& poly, double height, F1 const& face_func, F2 const& frame_func, F3 const& roof_func)
|
void make_building(geometry::polygon<double> const& poly, double height, F1 const& face_func, F2 const& frame_func, F3 const& roof_func)
|
||||||
{
|
{
|
||||||
const std::unique_ptr<path_type> frame(new path_type(path_type::types::LineString));
|
path_type frame(path_type::types::LineString);
|
||||||
const std::unique_ptr<path_type> roof(new path_type(path_type::types::Polygon));
|
path_type roof(path_type::types::Polygon);
|
||||||
std::deque<segment_t> face_segments;
|
std::deque<segment_t> face_segments;
|
||||||
|
double ring_begin_x, ring_begin_y;
|
||||||
double x0 = 0;
|
double x0 = 0;
|
||||||
double y0 = 0;
|
double y0 = 0;
|
||||||
double x,y;
|
double x,y;
|
||||||
|
@ -51,16 +52,22 @@ void make_building(geometry::polygon<double> const& poly, double height, F1 cons
|
||||||
{
|
{
|
||||||
if (cm == SEG_MOVETO)
|
if (cm == SEG_MOVETO)
|
||||||
{
|
{
|
||||||
frame->move_to(x,y);
|
frame.move_to(x,y);
|
||||||
|
ring_begin_x = x;
|
||||||
|
ring_begin_y = y;
|
||||||
}
|
}
|
||||||
else if (cm == SEG_LINETO)
|
else if (cm == SEG_LINETO)
|
||||||
{
|
{
|
||||||
frame->line_to(x,y);
|
frame.line_to(x,y);
|
||||||
face_segments.push_back(segment_t(x0,y0,x,y));
|
face_segments.emplace_back(x0,y0,x,y);
|
||||||
}
|
}
|
||||||
else if (cm == SEG_CLOSE)
|
else if (cm == SEG_CLOSE)
|
||||||
{
|
{
|
||||||
frame->close_path();
|
frame.close_path();
|
||||||
|
if (!face_segments.empty())
|
||||||
|
{
|
||||||
|
face_segments.emplace_back(x0, y0, ring_begin_x, ring_begin_y);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
x0 = x;
|
x0 = x;
|
||||||
y0 = y;
|
y0 = y;
|
||||||
|
@ -69,16 +76,16 @@ void make_building(geometry::polygon<double> const& poly, double height, F1 cons
|
||||||
std::sort(face_segments.begin(),face_segments.end(), y_order);
|
std::sort(face_segments.begin(),face_segments.end(), y_order);
|
||||||
for (auto const& seg : face_segments)
|
for (auto const& seg : face_segments)
|
||||||
{
|
{
|
||||||
const std::unique_ptr<path_type> faces(new path_type(path_type::types::Polygon));
|
path_type faces(path_type::types::Polygon);
|
||||||
faces->move_to(std::get<0>(seg),std::get<1>(seg));
|
faces.move_to(std::get<0>(seg),std::get<1>(seg));
|
||||||
faces->line_to(std::get<2>(seg),std::get<3>(seg));
|
faces.line_to(std::get<2>(seg),std::get<3>(seg));
|
||||||
faces->line_to(std::get<2>(seg),std::get<3>(seg) + height);
|
faces.line_to(std::get<2>(seg),std::get<3>(seg) + height);
|
||||||
faces->line_to(std::get<0>(seg),std::get<1>(seg) + height);
|
faces.line_to(std::get<0>(seg),std::get<1>(seg) + height);
|
||||||
|
|
||||||
face_func(*faces);
|
face_func(faces);
|
||||||
//
|
//
|
||||||
frame->move_to(std::get<0>(seg),std::get<1>(seg));
|
frame.move_to(std::get<0>(seg),std::get<1>(seg));
|
||||||
frame->line_to(std::get<0>(seg),std::get<1>(seg)+height);
|
frame.line_to(std::get<0>(seg),std::get<1>(seg)+height);
|
||||||
}
|
}
|
||||||
|
|
||||||
va.rewind(0);
|
va.rewind(0);
|
||||||
|
@ -87,23 +94,23 @@ void make_building(geometry::polygon<double> const& poly, double height, F1 cons
|
||||||
{
|
{
|
||||||
if (cm == SEG_MOVETO)
|
if (cm == SEG_MOVETO)
|
||||||
{
|
{
|
||||||
frame->move_to(x,y+height);
|
frame.move_to(x,y+height);
|
||||||
roof->move_to(x,y+height);
|
roof.move_to(x,y+height);
|
||||||
}
|
}
|
||||||
else if (cm == SEG_LINETO)
|
else if (cm == SEG_LINETO)
|
||||||
{
|
{
|
||||||
frame->line_to(x,y+height);
|
frame.line_to(x,y+height);
|
||||||
roof->line_to(x,y+height);
|
roof.line_to(x,y+height);
|
||||||
}
|
}
|
||||||
else if (cm == SEG_CLOSE)
|
else if (cm == SEG_CLOSE)
|
||||||
{
|
{
|
||||||
frame->close_path();
|
frame.close_path();
|
||||||
roof->close_path();
|
roof.close_path();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
frame_func(*frame);
|
frame_func(frame);
|
||||||
roof_func(*roof);
|
roof_func(roof);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // ns detail
|
} // ns detail
|
||||||
|
|
|
@ -26,24 +26,18 @@
|
||||||
#include <mapnik/config.hpp>
|
#include <mapnik/config.hpp>
|
||||||
#include <mapbox/variant.hpp>
|
#include <mapbox/variant.hpp>
|
||||||
|
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#include <mapnik/warning_ignore.hpp>
|
|
||||||
#include <boost/mpl/vector.hpp> // spirit support
|
|
||||||
#pragma GCC diagnostic pop
|
|
||||||
|
|
||||||
namespace mapnik { namespace util {
|
namespace mapnik { namespace util {
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
using recursive_wrapper = typename mapbox::util::recursive_wrapper<T>;
|
using recursive_wrapper = typename mapbox::util::recursive_wrapper<T>;
|
||||||
|
|
||||||
|
|
||||||
template<typename... Types>
|
template<typename... Types>
|
||||||
class variant : public mapbox::util::variant<Types...>
|
class variant : public mapbox::util::variant<Types...>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// tell spirit that this is an adapted variant
|
// tell spirit that this is an adapted variant
|
||||||
struct adapted_variant_tag;
|
struct adapted_variant_tag;
|
||||||
using types = boost::mpl::vector<Types...>;
|
using types = std::tuple<Types...>;
|
||||||
// inherit ctor's
|
// inherit ctor's
|
||||||
using mapbox::util::variant<Types...>::variant;
|
using mapbox::util::variant<Types...>::variant;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit cb7f1aff2ee5a43178111801356eb529b9ef098f
|
Subproject commit 6ce59adfc4f11b16a5dc0e2020c36dc614850989
|
|
@ -1 +1 @@
|
||||||
Subproject commit fb51e008e009e37b5d067714a4b1273eb8426d65
|
Subproject commit db7989be3a8b636c60c79356b9ba9ca579faa01d
|
Loading…
Reference in a new issue