本文整理汇总了C++中MetadataNode::name方法的典型用法代码示例。如果您正苦于以下问题:C++ MetadataNode::name方法的具体用法?C++ MetadataNode::name怎么用?C++ MetadataNode::name使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MetadataNode
的用法示例。
在下文中一共展示了MetadataNode::name方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: toPTree
inline ptree toPTree(MetadataNode const& node)
{
typedef ptree::path_type path;
ptree tree;
tree.put("name", node.name());
tree.put("description", node.description());
tree.put("type", node.type());
tree.put("value", node.value());
MetadataNodeList children = node.children();
for (auto n = children.begin(); n != children.end(); ++n)
{
ptree pnode = toPTree(*n);
if (node.kind() == MetadataType::Array)
{
boost::optional<ptree&> opt =
tree.get_child_optional(path(node.name(), '/'));
if (opt)
opt->push_back(std::make_pair("", pnode));
else
{
tree.push_back(ptree::value_type(node.name(), ptree()));
auto& p = tree.get_child(path(node.name(), '/'));
p.push_back(std::make_pair("", pnode));
}
}
else if (node.name().size())
tree.push_back(std::make_pair(node.name(), pnode));
}
return tree;
}
示例2: bounds
TEST(Stats, metadata)
{
BOX3D bounds(1.0, 2.0, 3.0, 101.0, 102.0, 103.0);
Options ops;
ops.add("bounds", bounds);
ops.add("count", 1000);
ops.add("mode", "constant");
StageFactory f;
std::unique_ptr<Stage> reader(f.createStage("readers.faux"));
EXPECT_TRUE(reader.get());
reader->setOptions(ops);
Options filterOps;
filterOps.add("dimensions", " , X, Z ");
StatsFilter filter;
filter.setInput(*reader);
filter.setOptions(filterOps);
PointTable table;
filter.prepare(table);
filter.execute(table);
MetadataNode m = filter.getMetadata();
std::vector<MetadataNode> children = m.children("statistic");
auto findNode = [](MetadataNode m,
const std::string name, const std::string val)
{
auto findNameVal = [name, val](MetadataNode m)
{ return (m.name() == name && m.value() == val); };
return m.find(findNameVal);
};
for (auto mi = children.begin(); mi != children.end(); ++mi)
{
if (findNode(*mi, "name", "X").valid())
{
EXPECT_DOUBLE_EQ(mi->findChild("average").value<double>(), 1.0);
EXPECT_DOUBLE_EQ(mi->findChild("minimum").value<double>(), 1.0);
EXPECT_DOUBLE_EQ(mi->findChild("maximum").value<double>(), 1.0);
EXPECT_DOUBLE_EQ(mi->findChild("count").value<double>(), 1000.0);
}
if (findNode(*mi, "name", "Z").valid())
{
EXPECT_DOUBLE_EQ(mi->findChild("average").value<double>(), 3.0);
EXPECT_DOUBLE_EQ(mi->findChild("minimum").value<double>(), 3.0);
EXPECT_DOUBLE_EQ(mi->findChild("maximum").value<double>(), 3.0);
EXPECT_DOUBLE_EQ(mi->findChild("count").value<double>(), 1000.0);
}
}
}
示例3: setSpatialReference
void Stage::setSpatialReference(MetadataNode& m,
const SpatialReference& spatialRef)
{
m_spatialReference = spatialRef;
auto pred = [](MetadataNode m){ return m.name() == "spatialreference"; };
MetadataNode spatialNode = m.findChild(pred);
if (spatialNode.empty())
{
m.add(Utils::toMetadata(spatialRef));
m.add("spatialreference",
spatialRef.getWKT(SpatialReference::eHorizontalOnly, false),
"SRS of this stage");
m.add("comp_spatialreference",
spatialRef.getWKT(SpatialReference::eCompoundOK, false),
"SRS of this stage");
}
}
示例4: nitf_reader
TEST(NitfReaderTest, test_one)
{
StageFactory f;
Options nitf_opts;
nitf_opts.add("filename", Support::datapath("nitf/autzen-utm10.ntf"));
nitf_opts.add("count", 750);
PointTable table;
Stage* nitf_reader(f.createStage("readers.nitf"));
EXPECT_TRUE(nitf_reader);
nitf_reader->setOptions(nitf_opts);
nitf_reader->prepare(table);
PointViewSet pbSet = nitf_reader->execute(table);
EXPECT_EQ(pbSet.size(), 1u);
PointViewPtr view = *pbSet.begin();
// check metadata
MetadataNode m = nitf_reader->getMetadata();
MetadataNode n = m.findChild(
[](MetadataNode& m) {
return m.name() == "IM:0.IGEOLO";
}
);
EXPECT_EQ(n.value(),
"440344N1230429W440344N1230346W440300N1230346W440300N1230429W");
n = m.findChild("FH.FDT");
EXPECT_EQ(n.value(), "20120323002946");
//
// read LAS
//
Options las_opts;
las_opts.add("count", 750);
las_opts.add("filename", Support::datapath("nitf/autzen-utm10.las"));
PointTable table2;
Stage* las_reader(f.createStage("readers.las"));
EXPECT_TRUE(las_reader);
las_reader->setOptions(las_opts);
las_reader->prepare(table2);
PointViewSet pbSet2 = las_reader->execute(table2);
EXPECT_EQ(pbSet2.size(), 1u);
PointViewPtr view2 = *pbSet.begin();
//
//
// compare the two views
//
EXPECT_EQ(view->size(), view2->size());
for (PointId i = 0; i < view2->size(); i++)
{
int32_t nitf_x = view->getFieldAs<int32_t>(Dimension::Id::X, i);
int32_t nitf_y = view->getFieldAs<int32_t>(Dimension::Id::Y, i);
int32_t nitf_z = view->getFieldAs<int32_t>(Dimension::Id::Z, i);
int32_t las_x = view2->getFieldAs<int32_t>(Dimension::Id::X, i);
int32_t las_y = view2->getFieldAs<int32_t>(Dimension::Id::Y, i);
int32_t las_z = view2->getFieldAs<int32_t>(Dimension::Id::Z, i);
EXPECT_EQ(nitf_x, las_x);
EXPECT_EQ(nitf_y, las_y);
EXPECT_EQ(nitf_z, las_z);
}
}