diff --git a/include/extractor/extractor_config.hpp b/include/extractor/extractor_config.hpp index 5e15e76fa..667f09603 100644 --- a/include/extractor/extractor_config.hpp +++ b/include/extractor/extractor_config.hpp @@ -102,6 +102,8 @@ struct ExtractorConfig bool generate_edge_lookup; std::string edge_penalty_path; std::string edge_segment_lookup_path; + + bool use_metadata; }; } } diff --git a/src/extractor/extractor.cpp b/src/extractor/extractor.cpp index c7f8dc8ed..994f9d3c4 100644 --- a/src/extractor/extractor.cpp +++ b/src/extractor/extractor.cpp @@ -130,7 +130,11 @@ int Extractor::run(ScriptingEnvironment &scripting_environment) auto extractor_callbacks = std::make_unique(extraction_containers); const osmium::io::File input_file(config.input_path.string()); - osmium::io::Reader reader(input_file, osmium::io::read_meta::no); + + osmium::io::Reader reader( + input_file, + (config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)); + const osmium::io::Header header = reader.header(); unsigned number_of_nodes = 0; diff --git a/src/tools/extract.cpp b/src/tools/extract.cpp index 1d3a4ced4..a5c78706b 100644 --- a/src/tools/extract.cpp +++ b/src/tools/extract.cpp @@ -50,7 +50,12 @@ return_code parseArguments(int argc, char *argv[], extractor::ExtractorConfig &e boost::program_options::value(&extractor_config.small_component_size) ->default_value(1000), "Number of nodes required before a strongly-connected-componennt is considered big " - "(affects nearest neighbor snapping)"); + "(affects nearest neighbor snapping)")( + "with-osm-metadata", + boost::program_options::value(&extractor_config.use_metadata) + ->implicit_value(true) + ->default_value(false), + "Use metada during osm parsing (This can affect the extraction performance)."); // hidden options, will be allowed on command line, but will not be // shown to the user