本文整理汇总了C++中osmium::Node::version方法的典型用法代码示例。如果您正苦于以下问题:C++ Node::version方法的具体用法?C++ Node::version怎么用?C++ Node::version使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osmium::Node
的用法示例。
在下文中一共展示了Node::version方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: node
void node(osmium::Node& node) {
if (node.id() == 101000) {
assert(node.version() == 1);
assert(node.location().lon() == 1.12);
assert(node.location().lat() == 1.02);
} else if (node.id() == 101001) {
assert(node.version() == 1);
assert(node.location().lon() == 1.12);
assert(node.location().lat() == 1.03);
} else if (node.id() == 101002) {
} else if (node.id() == 101003) {
} else {
throw std::runtime_error("Unknown ID");
}
}
示例2: node
void parse_osmium_t::node(osmium::Node& node)
{
if (node.deleted()) {
m_data->node_delete(node.id());
} else {
// if the node is not valid, then node.location.lat/lon() can throw.
// we probably ought to treat invalid locations as if they were
// deleted and ignore them.
if (!node.location().valid()) {
fprintf(stderr, "WARNING: Node %" PRIdOSMID " (version %ud) has an invalid "
"location and has been ignored. This is not expected to happen with "
"recent planet files, so please check that your input is correct.\n",
node.id(), node.version());
return;
}
if (!m_bbox || m_bbox->contains(node.location())) {
if (m_append) {
m_data->node_modify(node);
} else {
m_data->node_add(node);
}
m_stats.add_node(node.id());
}
}
}
示例3: check_node_2
void check_node_2(osmium::Node& node) {
REQUIRE(2 == node.id());
REQUIRE(3 == node.version());
REQUIRE(true == node.visible());
REQUIRE(333 == node.changeset());
REQUIRE(21 == node.uid());
REQUIRE(123 == node.timestamp());
REQUIRE(osmium::Location(3.5, 4.7) == node.location());
REQUIRE(std::string("testuser") == node.user());
for (osmium::memory::Item& item : node) {
REQUIRE(osmium::item_type::tag_list == item.type());
}
REQUIRE(!node.tags().empty());
REQUIRE(2 == std::distance(node.tags().begin(), node.tags().end()));
int n = 0;
for (const osmium::Tag& tag : node.tags()) {
switch (n) {
case 0:
REQUIRE(std::string("amenity") == tag.key());
REQUIRE(std::string("bank") == tag.value());
break;
case 1:
REQUIRE(std::string("name") == tag.key());
REQUIRE(std::string("OSM Savings") == tag.value());
break;
}
++n;
}
REQUIRE(2 == n);
}
示例4: node
void node(const osmium::Node& node) {
if (m_write_change_ops) {
open_close_op_tag(node.visible() ? (node.version() == 1 ? operation::op_create : operation::op_modify) : operation::op_delete);
}
write_prefix();
m_out += "<node";
write_meta(node);
if (node.location()) {
m_out += " lat=\"";
osmium::util::double2string(std::back_inserter(m_out), node.location().lat_without_check(), 7);
m_out += "\" lon=\"";
osmium::util::double2string(std::back_inserter(m_out), node.location().lon_without_check(), 7);
m_out += "\"";
}
if (node.tags().empty()) {
m_out += "/>\n";
return;
}
m_out += ">\n";
write_tags(node.tags());
write_prefix();
m_out += "</node>\n";
}
示例5: check_node_2
void check_node_2(osmium::Node& node) {
BOOST_CHECK_EQUAL(2, node.id());
BOOST_CHECK_EQUAL(3, node.version());
BOOST_CHECK_EQUAL(true, node.visible());
BOOST_CHECK_EQUAL(333, node.changeset());
BOOST_CHECK_EQUAL(21, node.uid());
BOOST_CHECK_EQUAL(123, node.timestamp());
BOOST_CHECK_EQUAL(osmium::Location(3.5, 4.7), node.location());
BOOST_CHECK_EQUAL("testuser", node.user());
for (osmium::memory::Item& item : node) {
BOOST_CHECK_EQUAL(osmium::item_type::tag_list, item.type());
}
BOOST_CHECK(!node.tags().empty());
BOOST_CHECK_EQUAL(2, std::distance(node.tags().begin(), node.tags().end()));
int n = 0;
for (osmium::Tag& tag : node.tags()) {
switch (n) {
case 0:
BOOST_CHECK_EQUAL("amenity", tag.key());
BOOST_CHECK_EQUAL("bank", tag.value());
break;
case 1:
BOOST_CHECK_EQUAL("name", tag.key());
BOOST_CHECK_EQUAL("OSM Savings", tag.value());
break;
}
++n;
}
BOOST_CHECK_EQUAL(2, n);
}
示例6: node
// - walk over all node-versions
// - walk over all bboxes
// - if the node-id is recorded in the bboxes node-trackers
// - send the node to the bboxes writer
void node(const osmium::Node& node) {
if (debug) {
std::cerr << "cut_administrative node " << node.id() << " v" << node.version() << "\n";
}
for (const auto& extract : info->extracts) {
if (extract->node_tracker.get(node.id())){
extract->write(node);
}
}
}
示例7: node
// - walk over all node-versions
// - walk over all bboxes
// - if the node-id is recorded in the bboxes node-tracker or in the extra-node-tracker
// - send the node to the bboxes writer
void node(const osmium::Node& node) {
if (debug) {
std::cerr << "softcut node " << node.positive_id() << " v" << node.version() << "\n";
}
for (const auto& extract : info->extracts) {
if (extract->node_tracker.get(node.positive_id()) ||
extract->extra_node_tracker.get(node.positive_id())) {
extract->write(node);
}
}
}
示例8: node
void node(const osmium::Node& node) {
++nodes;
if (!matches_user_filter(node)) return;
++unodes;
if (node.visible()==false) {
m_nodefile <<
node.id() << "\t" <<
node.version() << "\t" <<
node.changeset() << "\t" <<
node.timestamp().to_iso() << "\t" <<
node.uid() << std::endl;
}
}
示例9: check_node_1
void check_node_1(osmium::Node& node) {
REQUIRE(1 == node.id());
REQUIRE(3 == node.version());
REQUIRE(true == node.visible());
REQUIRE(333 == node.changeset());
REQUIRE(21 == node.uid());
REQUIRE(123 == node.timestamp());
REQUIRE(osmium::Location(3.5, 4.7) == node.location());
REQUIRE(std::string("testuser") == node.user());
for (osmium::memory::Item& item : node) {
REQUIRE(osmium::item_type::tag_list == item.type());
}
REQUIRE(node.tags().begin() == node.tags().end());
REQUIRE(node.tags().empty());
REQUIRE(0 == std::distance(node.tags().begin(), node.tags().end()));
}
示例10: check_node_1
void check_node_1(osmium::Node& node) {
BOOST_CHECK_EQUAL(1, node.id());
BOOST_CHECK_EQUAL(3, node.version());
BOOST_CHECK_EQUAL(true, node.visible());
BOOST_CHECK_EQUAL(333, node.changeset());
BOOST_CHECK_EQUAL(21, node.uid());
BOOST_CHECK_EQUAL(123, node.timestamp());
BOOST_CHECK_EQUAL(osmium::Location(3.5, 4.7), node.location());
BOOST_CHECK_EQUAL("testuser", node.user());
for (osmium::memory::Item& item : node) {
BOOST_CHECK_EQUAL(osmium::item_type::tag_list, item.type());
}
BOOST_CHECK_EQUAL(node.tags().begin(), node.tags().end());
BOOST_CHECK(node.tags().empty());
BOOST_CHECK_EQUAL(0, std::distance(node.tags().begin(), node.tags().end()));
}