本文整理汇总了C++中WayPtr::getNodes方法的典型用法代码示例。如果您正苦于以下问题:C++ WayPtr::getNodes方法的具体用法?C++ WayPtr::getNodes怎么用?C++ WayPtr::getNodes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WayPtr
的用法示例。
在下文中一共展示了WayPtr::getNodes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
geos::operation::linemerge::LineMerger lm;
BOOST_FOREACH(WayPtr w, ways) {
if(w->getNodes()->size() < 2)
continue;
lm.add(w->toGeometry().get());
}
std::vector< geos::geom::LineString * > *lss = lm.getMergedLineStrings();
BOOST_FOREACH(geos::geom::LineString *ls, *lss) {
if(ls->getNumPoints()>3 && ls->isClosed()) {
geos::geom::Polygon *p = gf->createPolygon(gf->createLinearRing(ls->getCoordinates()),0);
ret->push_back(p);
}
}
} else if(ways.size() == 1){
WayPtr w = ways.front();
const std::list<std::pair<unsigned long long int,NodePtr> > *nodes = w->getNodes();
if(nodes->size()>3 && nodes->front().first == nodes->back().first) {
//we have a closed way, return it
g = w->toGeometry().get()->clone();
geos::geom::CoordinateSequence *cs = g->getCoordinates();
geos::geom::LinearRing *lr = gf->createLinearRing(cs);
//std::vector<geos::geom::Geometry*>* holes = new std::vector<geos::geom::Geometry*>();
geos::geom::Polygon *p = gf->createPolygon(lr,NULL);
ret->push_back(p);
delete g;
}
}
return ret;
}