示例#1
0
 multipolygon_type multipolygon_finish() {
     try {
         auto polygons = new std::vector<geos::geom::Geometry*>;
         std::transform(m_polygons.begin(), m_polygons.end(), std::back_inserter(*polygons), [](std::unique_ptr<geos::geom::Polygon>& p) {
             return p.release();
         });
         m_polygons.clear();
         return multipolygon_type{m_geos_factory->createMultiPolygon(polygons)};
     } catch (const geos::util::GEOSException& e) {
         THROW(osmium::geos_geometry_error(e.what()));
     }
 }