From 4f9dce9a0ca580d0a4795d1e619630b0d2b673e5 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Mon, 8 Nov 2010 18:57:30 +0000 Subject: [PATCH] only zoom to active layers --- src/map.cpp | 55 ++++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/src/map.cpp b/src/map.cpp index c8121765e..df4440ec9 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -356,33 +356,36 @@ void Map::zoom_all() std::vector::const_iterator end = layers_.end(); while (itr != end) { - std::string const& layer_srs = itr->srs(); - projection proj1(layer_srs); - proj_transform prj_trans(proj0,proj1); - - box2d layerExt = itr->envelope(); - double x0 = layerExt.minx(); - double y0 = layerExt.miny(); - double z0 = 0.0; - double x1 = layerExt.maxx(); - double y1 = layerExt.maxy(); - double z1 = 0.0; - prj_trans.backward(x0,y0,z0); - prj_trans.backward(x1,y1,z1); - - box2d layerExt2(x0,y0,x1,y1); -#ifdef MAPNIK_DEBUG - std::clog << " layer1 - > " << layerExt << "\n"; - std::clog << " layer2 - > " << layerExt2 << "\n"; -#endif - if (first) + if (itr->isActive()) { - ext = layerExt2; - first = false; - } - else - { - ext.expand_to_include(layerExt2); + std::string const& layer_srs = itr->srs(); + projection proj1(layer_srs); + proj_transform prj_trans(proj0,proj1); + + box2d layerExt = itr->envelope(); + double x0 = layerExt.minx(); + double y0 = layerExt.miny(); + double z0 = 0.0; + double x1 = layerExt.maxx(); + double y1 = layerExt.maxy(); + double z1 = 0.0; + prj_trans.backward(x0,y0,z0); + prj_trans.backward(x1,y1,z1); + + box2d layerExt2(x0,y0,x1,y1); + #ifdef MAPNIK_DEBUG + std::clog << " layer1 - > " << layerExt << "\n"; + std::clog << " layer2 - > " << layerExt2 << "\n"; + #endif + if (first) + { + ext = layerExt2; + first = false; + } + else + { + ext.expand_to_include(layerExt2); + } } ++itr; }