/* This is a small tool to dump the contents of the input file. The code in this example file is released into the Public Domain. */ #include #include #include int main(int argc, char* argv[]) { std::ios_base::sync_with_stdio(false); if (argc < 2 || argc > 3) { std::cerr << "Usage: " << argv[0] << " OSMFILE [TYPES]\n"; std::cerr << "TYPES can be any combination of 'n', 'w', 'r', and 'c' to indicate what types of OSM entities you want (default: all).\n"; exit(1); } osmium::osm_entity_bits::type read_types = osmium::osm_entity_bits::all; if (argc == 3) { read_types = osmium::osm_entity_bits::nothing; std::string types = argv[2]; if (types.find('n') != std::string::npos) read_types |= osmium::osm_entity_bits::node; if (types.find('w') != std::string::npos) read_types |= osmium::osm_entity_bits::way; if (types.find('r') != std::string::npos) read_types |= osmium::osm_entity_bits::relation; if (types.find('c') != std::string::npos) read_types |= osmium::osm_entity_bits::changeset; } osmium::io::Reader reader(argv[1], read_types); osmium::io::Header header = reader.header(); std::cout << "HEADER:\n generator=" << header.get("generator") << "\n"; for (auto& bbox : header.boxes()) { std::cout << " bbox=" << bbox << "\n"; } osmium::handler::Dump dump(std::cout); while (osmium::memory::Buffer buffer = reader.read()) { osmium::apply(buffer, dump); } reader.close(); }