void grid_renderer<T>::start_layer_processing(layer const& lay, box2d<double> const& query_extent) { MAPNIK_LOG_DEBUG(grid_renderer) << "grid_renderer: Start processing layer=" << lay.name(); MAPNIK_LOG_DEBUG(grid_renderer) << "grid_renderer: datasource=" << lay.datasource().get(); MAPNIK_LOG_DEBUG(grid_renderer) << "grid_renderer: query_extent = " << query_extent; if (lay.clear_label_cache()) { detector_->clear(); } query_extent_ = query_extent; int buffer_size = lay.buffer_size(); if (buffer_size != 0 ) { double padding = buffer_size * (double)(query_extent.width()/pixmap_.width()); double x0 = query_extent_.minx(); double y0 = query_extent_.miny(); double x1 = query_extent_.maxx(); double y1 = query_extent_.maxy(); query_extent_.init(x0 - padding, y0 - padding, x1 + padding , y1 + padding); } boost::optional<box2d<double> > const& maximum_extent = lay.maximum_extent(); if (maximum_extent) { query_extent_.clip(*maximum_extent); } }