void node(const osmium::Node& node) { m_check_order.node(node); if (m_node_count == 0) { m_progress_bar.remove(); m_vout << "Reading nodes...\n"; } ++m_node_count; set(osmium::item_type::node, node.id()); }
void relation(const osmium::Relation& relation) { m_check_order.relation(relation); if (m_relation_count == 0) { m_progress_bar.remove(); m_vout << "Reading relations...\n"; } ++m_relation_count; if (m_check_relations) { set(osmium::item_type::relation, relation.id()); for (const auto& member : relation.members()) { switch (member.type()) { case osmium::item_type::node: if (!get(osmium::item_type::node, member.ref())) { ++m_missing_nodes_in_relations; set(osmium::item_type::node, member.ref()); if (m_show_ids) { std::cout << "n" << member.ref() << " in r" << relation.id() << "\n"; } } break; case osmium::item_type::way: if (!get(osmium::item_type::way, member.ref())) { ++m_missing_ways_in_relations; set(osmium::item_type::way, member.ref()); if (m_show_ids) { std::cout << "w" << member.ref() << " in r" << relation.id() << "\n"; } } break; case osmium::item_type::relation: if (member.ref() > relation.id() || !get(osmium::item_type::relation, member.ref())) { m_relation_refs.emplace_back(member.ref(), relation.id()); } break; default: break; } } } }
void way(const osmium::Way& way) { m_check_order.way(way); if (m_way_count == 0) { m_progress_bar.remove(); m_vout << "Reading ways...\n"; } ++m_way_count; if (m_check_relations) { set(osmium::item_type::way, way.id()); } for (const auto& node_ref : way.nodes()) { if (!get(osmium::item_type::node, node_ref.ref())) { ++m_missing_nodes_in_ways; if (m_show_ids) { std::cout << "n" << node_ref.ref() << " in w" << way.id() << "\n"; } } } }
void relation(const osmium::Relation& relation) { m_check_order.relation(relation); m_relations_map_stash.add_members(relation); }
void way(const osmium::Way& way) { m_check_order.way(way); }
void node(const osmium::Node& node) { m_check_order.node(node); }