Exemple #1
0
OGRErr OGRCurvePolygon::addRing( OGRCurve * poNewRing )

{
    OGRCurve* poNewRingCloned = (OGRCurve* )poNewRing->clone();
    OGRErr eErr = addRingDirectly(poNewRingCloned);
    if( eErr != OGRERR_NONE )
        delete poNewRingCloned;
    return eErr;
}
Exemple #2
0
OGRGeometry * GeometryFromRing(const std::list<Point> & ring)
{
	auto ogrRing = new OGRLinearRing();
	auto ogrPolygon = new OGRPolygon();

	std::for_each(std::begin(ring), std::end(ring),
		[&](Point it){ogrRing->addPoint(it->getX(), it->getY()); });

	ogrPolygon->addRingDirectly(ogrRing);

	return ogrPolygon;
}
Exemple #3
0
 polygon_type polygon_finish(size_t /* num_points */) {
     auto polygon = std::unique_ptr<OGRPolygon>{new OGRPolygon{}};
     polygon->addRingDirectly(m_ring.release());
     return polygon;
 }