Update vendored vtzero dependency to v1.1.0 (#6871)
This commit is contained in:
+88
-76
@@ -17,85 +17,97 @@
|
||||
#include <vector>
|
||||
|
||||
int main() {
|
||||
vtzero::tile_builder tile;
|
||||
vtzero::layer_builder layer_points{tile, "points"};
|
||||
vtzero::layer_builder layer_lines{tile, "lines"};
|
||||
vtzero::layer_builder layer_polygons{tile, "polygons"};
|
||||
try {
|
||||
vtzero::tile_builder tile;
|
||||
vtzero::layer_builder layer_points{tile, "points"};
|
||||
vtzero::layer_builder layer_lines{tile, "lines"};
|
||||
vtzero::layer_builder layer_polygons{tile, "polygons"};
|
||||
|
||||
vtzero::key_index<std::unordered_map> idx{layer_points};
|
||||
vtzero::key_index<std::unordered_map> idx{layer_points};
|
||||
|
||||
{
|
||||
vtzero::point_feature_builder feature{layer_points};
|
||||
feature.set_id(1);
|
||||
feature.add_points(1);
|
||||
feature.set_point(10, 10);
|
||||
feature.add_property("foo", "bar");
|
||||
feature.add_property("x", "y");
|
||||
feature.rollback();
|
||||
{
|
||||
vtzero::point_feature_builder feature{layer_points};
|
||||
feature.set_id(1);
|
||||
feature.add_points(1);
|
||||
feature.set_point(10, 10);
|
||||
feature.add_property("foo", "bar");
|
||||
feature.add_property("x", "y");
|
||||
feature.rollback();
|
||||
}
|
||||
|
||||
const auto some = idx("some");
|
||||
|
||||
{
|
||||
vtzero::point_feature_builder feature{layer_points};
|
||||
feature.set_id(2);
|
||||
feature.add_point(20, 20);
|
||||
feature.add_property(some, "attr");
|
||||
feature.commit();
|
||||
}
|
||||
{
|
||||
vtzero::point_feature_builder feature{layer_points};
|
||||
feature.set_id(3);
|
||||
feature.add_point(20, 20);
|
||||
feature.add_property(idx("some"), "attr");
|
||||
feature.commit();
|
||||
}
|
||||
|
||||
{
|
||||
vtzero::point_feature_builder feature{layer_points};
|
||||
feature.set_id(4);
|
||||
feature.add_point(20, 20);
|
||||
feature.add_property(idx("some"), "otherattr");
|
||||
feature.commit();
|
||||
}
|
||||
|
||||
|
||||
vtzero::point_feature_builder feature1{layer_points};
|
||||
feature1.set_id(5);
|
||||
feature1.add_point(vtzero::point{20, 20});
|
||||
feature1.add_property("otherkey", "attr");
|
||||
feature1.commit();
|
||||
|
||||
vtzero::value_index<vtzero::sint_value_type, int32_t, std::unordered_map> maxspeed_index{layer_lines};
|
||||
{
|
||||
vtzero::linestring_feature_builder feature{layer_lines};
|
||||
feature.set_id(6);
|
||||
feature.add_linestring(3);
|
||||
feature.set_point(10, 10);
|
||||
feature.set_point(10, 20);
|
||||
feature.set_point(vtzero::point{20, 20});
|
||||
std::vector<vtzero::point> points = {{11, 11}, {12, 13}};
|
||||
feature.add_linestring_from_container(points);
|
||||
feature.add_property("highway", "primary");
|
||||
feature.add_property(std::string{"maxspeed"}, maxspeed_index(50));
|
||||
feature.commit();
|
||||
}
|
||||
|
||||
{
|
||||
vtzero::polygon_feature_builder feature{layer_polygons};
|
||||
feature.set_id(7);
|
||||
feature.add_ring(5);
|
||||
feature.set_point(0, 0);
|
||||
feature.set_point(10, 0);
|
||||
feature.set_point(10, 10);
|
||||
feature.set_point(0, 10);
|
||||
feature.set_point(0, 0);
|
||||
feature.add_ring(4);
|
||||
feature.set_point(3, 3);
|
||||
feature.set_point(3, 5);
|
||||
feature.set_point(5, 5);
|
||||
feature.close_ring();
|
||||
feature.add_property("natural", "wood");
|
||||
feature.add_property("number_of_trees", vtzero::sint_value_type{23402752});
|
||||
feature.commit();
|
||||
}
|
||||
|
||||
const auto data = tile.serialize();
|
||||
write_data_to_file(data, "test.mvt");
|
||||
} catch (const std::exception& e) {
|
||||
std::cerr << "Fatal error: " << e.what() << '\n';
|
||||
return 1;
|
||||
}
|
||||
|
||||
const auto some = idx("some");
|
||||
|
||||
{
|
||||
vtzero::point_feature_builder feature{layer_points};
|
||||
feature.set_id(2);
|
||||
feature.add_point(20, 20);
|
||||
feature.add_property(some, "attr");
|
||||
}
|
||||
{
|
||||
vtzero::point_feature_builder feature{layer_points};
|
||||
feature.set_id(3);
|
||||
feature.add_point(20, 20);
|
||||
feature.add_property(idx("some"), "attr");
|
||||
}
|
||||
|
||||
{
|
||||
vtzero::point_feature_builder feature{layer_points};
|
||||
feature.set_id(4);
|
||||
feature.add_point(20, 20);
|
||||
feature.add_property(idx("some"), "otherattr");
|
||||
}
|
||||
|
||||
|
||||
vtzero::point_feature_builder feature1{layer_points};
|
||||
feature1.set_id(5);
|
||||
feature1.add_point(vtzero::point{20, 20});
|
||||
feature1.add_property("otherkey", "attr");
|
||||
feature1.commit();
|
||||
|
||||
vtzero::value_index<vtzero::sint_value_type, int32_t, std::unordered_map> maxspeed_index{layer_lines};
|
||||
{
|
||||
vtzero::linestring_feature_builder feature{layer_lines};
|
||||
feature.set_id(6);
|
||||
feature.add_linestring(3);
|
||||
feature.set_point(10, 10);
|
||||
feature.set_point(10, 20);
|
||||
feature.set_point(vtzero::point{20, 20});
|
||||
std::vector<vtzero::point> points = {{11, 11}, {12, 13}};
|
||||
feature.add_linestring_from_container(points);
|
||||
feature.add_property("highway", "primary");
|
||||
feature.add_property(std::string{"maxspeed"}, maxspeed_index(50));
|
||||
}
|
||||
|
||||
{
|
||||
vtzero::polygon_feature_builder feature{layer_polygons};
|
||||
feature.set_id(7);
|
||||
feature.add_ring(5);
|
||||
feature.set_point(0, 0);
|
||||
feature.set_point(10, 0);
|
||||
feature.set_point(10, 10);
|
||||
feature.set_point(0, 10);
|
||||
feature.set_point(0, 0);
|
||||
feature.add_ring(4);
|
||||
feature.set_point(3, 3);
|
||||
feature.set_point(3, 5);
|
||||
feature.set_point(5, 5);
|
||||
feature.close_ring();
|
||||
feature.add_property("natural", "wood");
|
||||
feature.add_property("number_of_trees", vtzero::sint_value_type{23402752});
|
||||
}
|
||||
|
||||
const auto data = tile.serialize();
|
||||
write_data_to_file(data, "test.mvt");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -138,5 +138,7 @@ int main(int argc, char* argv[]) {
|
||||
out.back() = ' ';
|
||||
|
||||
std::cout << '\n' << out << "]\n";
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
+72
-65
@@ -21,81 +21,88 @@
|
||||
#include <string>
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
std::string filename;
|
||||
std::string layer_num_or_name;
|
||||
std::string idstr;
|
||||
std::string output_file{"filtered.mvt"};
|
||||
try {
|
||||
std::string filename;
|
||||
std::string layer_num_or_name;
|
||||
std::string idstr;
|
||||
std::string output_file{"filtered.mvt"};
|
||||
|
||||
bool help = false;
|
||||
bool help = false;
|
||||
|
||||
const auto cli
|
||||
= clara::Opt(output_file, "FILE")
|
||||
["-o"]["--output"]
|
||||
("write output to FILE")
|
||||
| clara::Help(help)
|
||||
| clara::Arg(filename, "FILENAME").required()
|
||||
("vector tile")
|
||||
| clara::Arg(layer_num_or_name, "LAYER-NUM|LAYER-NAME").required()
|
||||
("layer")
|
||||
| clara::Arg(idstr, "ID")
|
||||
("feature_id");
|
||||
const auto cli
|
||||
= clara::Opt(output_file, "FILE")
|
||||
["-o"]["--output"]
|
||||
("write output to FILE")
|
||||
| clara::Help(help)
|
||||
| clara::Arg(filename, "FILENAME").required()
|
||||
("vector tile")
|
||||
| clara::Arg(layer_num_or_name, "LAYER-NUM|LAYER-NAME").required()
|
||||
("layer")
|
||||
| clara::Arg(idstr, "ID")
|
||||
("feature_id");
|
||||
|
||||
const auto result = cli.parse(clara::Args(argc, argv));
|
||||
if (!result) {
|
||||
std::cerr << "Error in command line: " << result.errorMessage() << '\n';
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (help) {
|
||||
std::cout << cli
|
||||
<< "\nFilter contents of vector tile.\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (filename.empty()) {
|
||||
std::cerr << "Error in command line: Missing file name of vector tile to read\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (layer_num_or_name.empty()) {
|
||||
std::cerr << "Error in command line: Missing layer number or name\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
const auto data = read_file(filename);
|
||||
vtzero::vector_tile tile{data};
|
||||
|
||||
auto layer = get_layer(tile, layer_num_or_name);
|
||||
std::cerr << "Found layer: " << std::string(layer.name()) << "\n";
|
||||
|
||||
vtzero::tile_builder tb;
|
||||
|
||||
if (idstr.empty()) {
|
||||
tb.add_existing_layer(layer);
|
||||
} else {
|
||||
char* str_end = nullptr;
|
||||
const int64_t id = std::strtoll(idstr.c_str(), &str_end, 10);
|
||||
if (str_end != idstr.c_str() + idstr.size()) {
|
||||
std::cerr << "Feature ID must be numeric.\n";
|
||||
return 1;
|
||||
}
|
||||
if (id < 0) {
|
||||
std::cerr << "Feature ID must be >= 0.\n";
|
||||
const auto result = cli.parse(clara::Args(argc, argv));
|
||||
if (!result) {
|
||||
std::cerr << "Error in command line: " << result.errorMessage() << '\n';
|
||||
return 1;
|
||||
}
|
||||
|
||||
const auto feature = layer.get_feature_by_id(static_cast<uint64_t>(id));
|
||||
if (!feature.valid()) {
|
||||
std::cerr << "No feature with that id: " << id << '\n';
|
||||
if (help) {
|
||||
std::cout << cli
|
||||
<< "\nFilter contents of vector tile.\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (filename.empty()) {
|
||||
std::cerr << "Error in command line: Missing file name of vector tile to read\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
vtzero::layer_builder layer_builder{tb, layer};
|
||||
layer_builder.add_feature(feature);
|
||||
if (layer_num_or_name.empty()) {
|
||||
std::cerr << "Error in command line: Missing layer number or name\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
const auto data = read_file(filename);
|
||||
vtzero::vector_tile tile{data};
|
||||
|
||||
auto layer = get_layer(tile, layer_num_or_name);
|
||||
std::cerr << "Found layer: " << std::string(layer.name()) << "\n";
|
||||
|
||||
vtzero::tile_builder tb;
|
||||
|
||||
if (idstr.empty()) {
|
||||
tb.add_existing_layer(layer);
|
||||
} else {
|
||||
char* str_end = nullptr;
|
||||
const int64_t id = std::strtoll(idstr.c_str(), &str_end, 10);
|
||||
if (str_end != idstr.c_str() + idstr.size()) {
|
||||
std::cerr << "Feature ID must be numeric.\n";
|
||||
return 1;
|
||||
}
|
||||
if (id < 0) {
|
||||
std::cerr << "Feature ID must be >= 0.\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
const auto feature = layer.get_feature_by_id(static_cast<uint64_t>(id));
|
||||
if (!feature.valid()) {
|
||||
std::cerr << "No feature with that id: " << id << '\n';
|
||||
return 1;
|
||||
}
|
||||
|
||||
vtzero::layer_builder layer_builder{tb, layer};
|
||||
layer_builder.add_feature(feature);
|
||||
}
|
||||
|
||||
std::string output = tb.serialize();
|
||||
|
||||
write_data_to_file(output, output_file);
|
||||
} catch (const std::exception& e) {
|
||||
std::cerr << "Fatal error: " << e.what() << '\n';
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::string output = tb.serialize();
|
||||
|
||||
write_data_to_file(output, output_file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -26,7 +26,7 @@ public:
|
||||
void points_begin(const uint32_t /*count*/) const noexcept {
|
||||
}
|
||||
|
||||
void points_point(const vtzero::point point) const {
|
||||
static void points_point(const vtzero::point point) {
|
||||
std::cout << " POINT(" << point.x << ',' << point.y << ")\n";
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ struct print_value {
|
||||
|
||||
}; // struct print_value
|
||||
|
||||
static void print_layer(vtzero::layer& layer, bool print_tables, bool print_value_types, int& layer_num, int& feature_num) {
|
||||
static void print_layer(vtzero::layer& layer, bool print_tables, bool print_value_types, int layer_num, int& feature_num) {
|
||||
std::cout << "=============================================================\n"
|
||||
<< "layer: " << layer_num << '\n'
|
||||
<< " name: " << std::string(layer.name()) << '\n'
|
||||
|
||||
+16
-10
@@ -20,17 +20,23 @@ int main(int argc, char* argv[]) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::string input_file{argv[1]};
|
||||
const auto data = read_file(input_file);
|
||||
try {
|
||||
std::string input_file{argv[1]};
|
||||
const auto data = read_file(input_file);
|
||||
|
||||
vtzero::vector_tile tile{data};
|
||||
vtzero::vector_tile tile{data};
|
||||
|
||||
while (const auto layer = tile.next_layer()) {
|
||||
std::cout.write(layer.name().data(), static_cast<std::streamsize>(layer.name().size()));
|
||||
std::cout << ' '
|
||||
<< layer.num_features() << ' '
|
||||
<< layer.key_table().size() << ' '
|
||||
<< layer.value_table().size() << '\n';
|
||||
while (const auto layer = tile.next_layer()) {
|
||||
std::cout.write(layer.name().data(), static_cast<std::streamsize>(layer.name().size()));
|
||||
std::cout << ' '
|
||||
<< layer.num_features() << ' '
|
||||
<< layer.key_table().size() << ' '
|
||||
<< layer.value_table().size() << '\n';
|
||||
}
|
||||
} catch (const std::exception& e) {
|
||||
std::cerr << "Error: " << e.what() << '\n';
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+5
-3
@@ -58,14 +58,14 @@ int main(int argc, char* argv[]) {
|
||||
while (auto feature = layer.next_feature()) {
|
||||
if (keep_feature(feature)) {
|
||||
vtzero::geometry_feature_builder feature_builder{layer_builder};
|
||||
if (feature.has_id()) {
|
||||
feature_builder.set_id(feature.id());
|
||||
}
|
||||
feature_builder.copy_id(feature);
|
||||
feature_builder.set_geometry(feature.geometry());
|
||||
|
||||
while (auto idxs = feature.next_property_indexes()) {
|
||||
feature_builder.add_property(mapper(idxs));
|
||||
}
|
||||
|
||||
feature_builder.commit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,5 +75,7 @@ int main(int argc, char* argv[]) {
|
||||
std::cerr << "Error: " << e.what() << '\n';
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user