本文整理汇总了C++中OsmMapPtr::calculateBounds方法的典型用法代码示例。如果您正苦于以下问题:C++ OsmMapPtr::calculateBounds方法的具体用法?C++ OsmMapPtr::calculateBounds怎么用?C++ OsmMapPtr::calculateBounds使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OsmMapPtr
的用法示例。
在下文中一共展示了OsmMapPtr::calculateBounds方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cut
void CookieCutter::cut(OsmMapPtr cutterShapeMap, OsmMapPtr doughMap)
{
OGREnvelope env = cutterShapeMap->calculateBounds();
env.Merge(doughMap->calculateBounds());
// reproject the dough and cutter into the same planar projection.
MapReprojector::reprojectToPlanar(doughMap, env);
MapReprojector::reprojectToPlanar(cutterShapeMap, env);
// create a complex geometry representing the alpha shape
UnionPolygonsVisitor v;
cutterShapeMap->visitRo(v);
shared_ptr<Geometry> cutterShape = v.getUnion();
if (_outputBuffer != 0.0)
{
cutterShape.reset(cutterShape->buffer(_outputBuffer));
}
if (cutterShape->getArea() == 0.0)
{
LOG_WARN("Cutter area is zero. Try increasing the buffer size or check the input.");
}
// free up a little RAM
cutterShapeMap.reset();
// remove the cookie cutter portion from the "dough"
// if crop is true, then the cookie cutter portion is kept and the "dough" is dropped.
MapCropper::crop(doughMap, cutterShape, !_crop);
// clean up any ugly bits left over
SuperfluousWayRemover::removeWays(doughMap);
SuperfluousNodeRemover::removeNodes(doughMap);
}