restore to_wkt on geometry<std::int64_t>
This commit is contained in:
parent
657dd7d73a
commit
4449f81e03
3 changed files with 24 additions and 4 deletions
|
@ -32,6 +32,8 @@ namespace mapnik { namespace util {
|
||||||
|
|
||||||
bool to_wkt(std::string & wkt, mapnik::geometry::geometry<double> const& geom);
|
bool to_wkt(std::string & wkt, mapnik::geometry::geometry<double> const& geom);
|
||||||
|
|
||||||
|
bool to_wkt(std::string & wkt, mapnik::geometry::geometry<std::int64_t> const& geom);
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -36,13 +36,12 @@ bool to_wkt(std::string & wkt, mapnik::geometry::geometry<double> const& geom)
|
||||||
return boost::spirit::karma::generate(sink, generator, geom);
|
return boost::spirit::karma::generate(sink, generator, geom);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
bool to_wkt(std::string & wkt, mapnik::geometry::geometry<std::int64_t> const& geom)
|
||||||
inline bool to_wkt(std::string & wkt, mapnik::geometry::geometry<std::int64_t> const& geom)
|
|
||||||
{
|
{
|
||||||
using sink_type = std::back_insert_iterator<std::string>;
|
using sink_type = std::back_insert_iterator<std::string>;
|
||||||
static const mapnik::wkt::wkt_generator_grammar<sink_type, mapnik::geometry::geometry<std::int64_t>> generator;
|
static const mapnik::wkt::wkt_generator_grammar<sink_type, mapnik::geometry::geometry<std::int64_t>> generator;
|
||||||
sink_type sink(wkt);
|
sink_type sink(wkt);
|
||||||
return boost::spirit::karma::generate(sink, generator, geom);
|
return boost::spirit::karma::generate(sink, generator, geom);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}}
|
}}
|
||||||
|
|
|
@ -100,7 +100,7 @@ TEST_CASE("Well-known-geometries")
|
||||||
REQUIRE(mapnik::util::parse_hex(columns[2], twkb));
|
REQUIRE(mapnik::util::parse_hex(columns[2], twkb));
|
||||||
mapnik::geometry::geometry<double> geom_0 = mapnik::geometry_utils::from_wkb(wkb.data(), wkb.size(), mapnik::wkbAuto);
|
mapnik::geometry::geometry<double> geom_0 = mapnik::geometry_utils::from_wkb(wkb.data(), wkb.size(), mapnik::wkbAuto);
|
||||||
mapnik::geometry::geometry<double> geom_1 = mapnik::geometry_utils::from_twkb(twkb.data(), twkb.size());
|
mapnik::geometry::geometry<double> geom_1 = mapnik::geometry_utils::from_twkb(twkb.data(), twkb.size());
|
||||||
// compare WKTs
|
// compare WKTs as doubles
|
||||||
std::string wkt0, wkt1;
|
std::string wkt0, wkt1;
|
||||||
REQUIRE(mapnik::util::to_wkt(wkt0, geom_0));
|
REQUIRE(mapnik::util::to_wkt(wkt0, geom_0));
|
||||||
REQUIRE(mapnik::util::to_wkt(wkt1, geom_1));
|
REQUIRE(mapnik::util::to_wkt(wkt1, geom_1));
|
||||||
|
@ -112,6 +112,25 @@ TEST_CASE("Well-known-geometries")
|
||||||
REQUIRE(spatially_equal(geom_0, geom_1));
|
REQUIRE(spatially_equal(geom_0, geom_1));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// compare WKTS as ints
|
||||||
|
// note: mapnik::util::to_wkt<std::int64_t> used in mapnik-vt
|
||||||
|
std::string wkt2, wkt3;
|
||||||
|
mapnik::geometry::line_string<std::int64_t> geom_2;
|
||||||
|
geom_2.emplace_back(0,0);
|
||||||
|
geom_2.emplace_back(1,1);
|
||||||
|
geom_2.emplace_back(2,2);
|
||||||
|
mapnik::geometry::line_string<std::int64_t> geom_3;
|
||||||
|
geom_3.emplace_back(0,0);
|
||||||
|
geom_3.emplace_back(1,1);
|
||||||
|
geom_3.emplace_back(2,2);
|
||||||
|
REQUIRE(mapnik::util::to_wkt(wkt0, geom_2));
|
||||||
|
REQUIRE(mapnik::util::to_wkt(wkt1, geom_3));
|
||||||
|
if (!mapnik::geometry::is_empty(geom_2) && !mapnik::geometry::is_empty(geom_3))
|
||||||
|
{
|
||||||
|
REQUIRE(wkt2 == wkt3);
|
||||||
|
// compare spatially (NOTE: GeometryCollection comparison also enforces strict order)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue