[Commits] r604 - apps/opengeo/geoexplorer/trunk/lib

commits at geoext.org commits at geoext.org
Tue May 5 22:49:07 CEST 2009


Author: dwins
Date: 2009-05-05 22:49:07 +0200 (Tue, 05 May 2009)
New Revision: 604

Modified:
   apps/opengeo/geoexplorer/trunk/lib/CapabilitiesGrid.js
   apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js
Log:
Fix problem where openlayers was requesting invalid tiles even with alignToGrid set to true.


Modified: apps/opengeo/geoexplorer/trunk/lib/CapabilitiesGrid.js
===================================================================
--- apps/opengeo/geoexplorer/trunk/lib/CapabilitiesGrid.js	2009-05-05 19:43:50 UTC (rev 603)
+++ apps/opengeo/geoexplorer/trunk/lib/CapabilitiesGrid.js	2009-05-05 20:49:07 UTC (rev 604)
@@ -100,56 +100,15 @@
              * other srs.
              */
             layer = record.get("layer");
-            layer.maxExtent = OpenLayers.Bounds.fromArray(record.get("llbbox"));
+            layer.restrictedExtent = OpenLayers.Bounds.fromArray(record.get("llbbox"));
 
             if (this.alignToGrid) {
-                layer.maxExtent = this.mungeBounds(layer.maxExtent);
-            }
-
+                layer.maxExtent = new OpenLayers.Bounds(-180, -90, 180, 90);
+            } else {
+                layer.maxExtent = layer.restrictedExtent;
+            } 
             this.mapPanel.layers.add(record);
         }
 
-    },
-
-    mungeBounds: function(bounds) {
-        var maxTileSize = 180.0;
-
-        var extentSize = Math.max(bounds.getWidth(), bounds.getHeight());
-
-        if (extentSize > maxTileSize) {
-            return new OpenLayers.Bounds(-180, -90, 180, 90);
-        }
-
-        var zoomLevel = 
-            Math.round((Math.log(maxTileSize / extentSize) / Math.log(2)));
-        var tileSize = maxTileSize / Math.pow(2, zoomLevel);
-
-        var colIndex0 = Math.floor(bounds.left / tileSize);
-        var colIndex1 = Math.ceil(bounds.right / tileSize) - 1;
-
-        var rowIndex0 = Math.floor(bounds.bottom / tileSize);
-        var rowIndex1 = Math.ceil(bounds.top / tileSize) - 1;
-
-        while (tileSize < maxTileSize && 
-            (colIndex0 != colIndex1 || rowIndex0 != rowIndex1)) {
-            tileSize = tileSize * 2;
-
-            colIndex0 = Math.floor(bounds.left / tileSize);
-            colIndex1 = Math.ceil(bounds.right / tileSize) - 1;
-
-            rowIndex0 = Math.floor(bounds.bottom / tileSize);
-            rowIndex1 = Math.ceil(bounds.top / tileSize) - 1;
-        }
-
-        if (tileSize >= maxTileSize) {
-            return new OpenLayers.Bounds(-180, -90, 180, 90);
-        }
-
-        var x0 = colIndex0 * tileSize;
-        var y0 = rowIndex0 * tileSize;
-        var x1 = x0 + tileSize;
-        var y1 = y0 + tileSize;
-
-        return new OpenLayers.Bounds(x0, y0, x1, y1);
     }
 });

Modified: apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js
===================================================================
--- apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js	2009-05-05 19:43:50 UTC (rev 603)
+++ apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js	2009-05-05 20:49:07 UTC (rev 604)
@@ -250,7 +250,7 @@
                         handler: function() {
                             var node = layerTree.getSelectionModel().getSelectedNode();
                             if(node && node.layer) {
-                                this.map.zoomToExtent(node.layer.maxExtent);
+                                this.map.zoomToExtent(node.layer.restrictedExtent);
                             }
                         },
                         scope: this
@@ -355,11 +355,12 @@
 
                     // set layer max extent from capabilities
                     // TODO: make this SRS independent
-                    layer.maxExtent = OpenLayers.Bounds.fromArray(record.get("llbbox"));
+                    layer.restrictedExtent = OpenLayers.Bounds.fromArray(record.get("llbbox"));
 
                     if (this.alignToGrid) {
-                        layer.maxExtent = 
-                            CapabilitiesGrid.prototype.mungeBounds(layer.maxExtent);
+                        layer.maxExtent = new OpenLayers.Bounds(-180, -90, 180, 90);
+                    } else {
+                        layer.maxExtent = layer.restrictedExtent;
                     }
 
                     // set layer visibility from config



More information about the Commits mailing list