[Commits] r2749 - in core/trunk/geoext: lib/GeoExt/data tests/lib/GeoExt/data

commits at geoext.org commits at geoext.org
Tue Jul 19 08:17:24 CEST 2011


Author: bartvde
Date: 2011-07-19 08:17:24 +0200 (Tue, 19 Jul 2011)
New Revision: 2749

Modified:
   core/trunk/geoext/lib/GeoExt/data/PrintProvider.js
   core/trunk/geoext/tests/lib/GeoExt/data/PrintProvider.html
Log:
print provider should send scale info, r=ahocevar (closes #368)

Modified: core/trunk/geoext/lib/GeoExt/data/PrintProvider.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/data/PrintProvider.js	2011-07-15 16:06:25 UTC (rev 2748)
+++ core/trunk/geoext/lib/GeoExt/data/PrintProvider.js	2011-07-19 06:17:24 UTC (rev 2749)
@@ -600,6 +600,16 @@
      */
     encoders: {
         "layers": {
+            "Layer": function(layer) {
+                var enc = {};
+                if (layer.options && layer.options.maxScale) {
+                    enc.minScaleDenominator = layer.options.maxScale;
+                }
+                if (layer.options && layer.options.minScale) {
+                    enc.maxScaleDenominator = layer.options.minScale;
+                }
+                return enc;
+            },
             "WMS": function(layer) {
                 var enc = this.encoders.layers.HTTPRequest.call(this, layer);
                 Ext.apply(enc, {
@@ -690,22 +700,24 @@
                 });
             },
             "HTTPRequest": function(layer) {
-                return {
+                var enc = this.encoders.layers.Layer.call(this, layer);
+                return Ext.apply(enc, {
                     baseURL: this.getAbsoluteUrl(layer.url instanceof Array ?
                         layer.url[0] : layer.url),
                     opacity: (layer.opacity != null) ? layer.opacity : 1.0,
                     singleTile: layer.singleTile
-                };
+                });
             },
             "Image": function(layer) {
-                return {
+                var enc = this.encoders.layers.Layer.call(this, layer);
+                return Ext.apply(enc, {
                     type: 'Image',
                     baseURL: this.getAbsoluteUrl(layer.getURL(layer.extent)),
                     opacity: (layer.opacity != null) ? layer.opacity : 1.0,
                     extent: layer.extent.toArray(),
                     pixelSize: [layer.size.w, layer.size.h],
                     name: layer.name
-                };
+                });
             },
             "Vector": function(layer) {
                 if(!layer.features.length) {
@@ -750,8 +762,8 @@
                     
                     encFeatures.push(featureGeoJson);
                 }
-                
-                return {
+                var enc = this.encoders.layers.Layer.call(this, layer);                
+                return Ext.apply(enc, {
                     type: 'Vector',
                     styles: encStyles,
                     styleProperty: '_gx_style',
@@ -761,7 +773,7 @@
                     },
                     name: layer.name,
                     opacity: (layer.opacity != null) ? layer.opacity : 1.0
-                };
+                });
             }
         },
         "legends": {

Modified: core/trunk/geoext/tests/lib/GeoExt/data/PrintProvider.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/data/PrintProvider.html	2011-07-15 16:06:25 UTC (rev 2748)
+++ core/trunk/geoext/tests/lib/GeoExt/data/PrintProvider.html	2011-07-19 06:17:24 UTC (rev 2749)
@@ -159,7 +159,7 @@
                     new OpenLayers.Size(580, 288),
                     {numZoomLevels: 3, isBaseLayer: false}
                 ),
-                new OpenLayers.Layer.Vector("vector"),
+                new OpenLayers.Layer.Vector("vector", {minScale: 1000000, maxScale: 50000}),
                 new OpenLayers.Layer.WMS("don't print me", "http://demo.opengeo.org/geoserver/wms",
                     {layers: "tasmania", transparent: true}, {
                         displayInLayerSwitcher: false,
@@ -186,7 +186,6 @@
                 })
             ];
             map.addLayers(layers);
-
             // give the vector layer a feature
             var feature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1,2));
             feature.fid = "f1";
@@ -231,7 +230,7 @@
             printProvider.print(map, [printPage], {overview: overview, legend: legend});
             Ext.Ajax.request = origRequest;
             
-            var expect = {"units":"degrees","srs":"EPSG:4326","layout":"A4 portrait","dpi":75,"layers":[{"baseURL":"http://demo.opengeo.org/geoserver/wms","opacity":1,"singleTile":false,"type":"WMS","layers":["topp:tasmania_state_boundaries","topp:tasmania_water_bodies"],"format":"image/gif","styles":[""],"customParams":{"VENDORFOO":"bar", "map_resolution": 150}},{"baseURL":"http://tile.openstreetmap.org/","type":"OSM","opacity":1,"singleTile":false,"maxExtent":map.layers[1].maxExtent.toArray(),"tileSize":[256,256],"resolutions":map.layers[1].resolutions,"extension":"png",layer:undefined},{"baseURL":"http://c0.labs.metacarta.com/wms-c/cache/","opacity":1,"singleTile":false,"type":"TileCache","layer":"basic","maxExtent":[-180,-90,180,90],"tileSize":[256,256],"extension":"png","resolutions":[0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.001373291015625,0.0006866455078125,0.00034332275390625,0.000171661376953125,0.0000858306884765625,0.00004291534423828125,0.000021457672119140625]},{"baseURL":"http://labs.metacarta.com/wms-c/Basic.py/","type":"TMS","opacity":1,"singleTile":false,"extension":undefined,layer:"basic","maxExtent":[-180,-90,180,90],"tileSize":[256,256],"resolutions":[1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.001373291015625,0.0006866455078125,0.00034332275390625,0.000171661376953125,0.0000858306884765625,0.00004291534423828125],format:"png"},{"type":"Image","baseURL":"http://earthtrends.wri.org/images/maps/4_m_citylights_lg.gif","opacity":1,"extent":[-180,-88.759,180,88.759],"pixelSize":[580,288],"name":"image"},{"type":"Vector","styles":{"1":{"fillColor":"#ee9900","fillOpacity":0.4,"hoverFillColor":"white","hoverFillOpacity":0.8,"strokeColor":"#ee9900","strokeOpacity":1,"strokeWidth":1,"strokeLinecap":"round","strokeDashstyle":"solid","hoverStrokeColor":"red","hoverStrokeOpacity":1,"hoverStrokeWidth":0.2,"pointRadius":6,"hoverPointRadius":1,"hoverPointUnit":"%","pointerEvents":"visiblePainted","cursor":"inherit"}},"styleProperty":"_gx_style","geoJson":{"type":"FeatureCollection","features":[{"type":"Feature","id":"f1","properties":{"_gx_style":1},"geometry":{"type":"Point","coordinates":[1,2]}}]},"name":"vector","opacity":1},{baseURL:"http://wmts0.geo.admin.ch/", opacity:1, singleTile:false, type:"WMTS", layer:"ch.swisstopo.pixelkarte-farbe", version:"1.0.0", requestEncoding:"REST", tileOrigin:[420000, 350000], tileSize:[256, 256], style:"default", formatSuffix:"jpeg", dimensions:["TIME"], params:{TIME:"20110314"}, maxExtent:[420000, 30000, 900000, 350000], matrixSet:"21781", zoomOffset:14, resolutions:[4000, 3750, 3500, 3250, 3000, 2750, 2500, 2250, 2000, 1750, 1500, 1250, 1000, 750, 650, 500, 250, 100, 50, 20, 10, 5, 2.5, 2, 1.5, 1, 0.5]}],"pages":[{"mapTitle":"foo","comment":"bar","center":[1,2],"scale":4000000,"rotation":0}],"customParam":"foo","legends":[{"name":"tilecache","classes":[{"name":"","icon":"http://trac.geoext.org/chrome/site/img/GeoExt.png"}]},{"name":"wms","classes":[{"name":"","icons":["http://demo.opengeo.org/geoserver/wms?VENDORFOO=bar&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&EXCEPTIONS=application%2Fvnd.ogc.se_xml&LAYER=topp%3Atasmania_state_boundaries&SCALE=4000000&FORMAT=image%2Fgif","http://demo.opengeo.org/geoserver/wms?VENDORFOO=bar&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&EXCEPTIONS=application%2Fvnd.ogc.se_xml&LAYER=topp%3Atasmania_water_bodies&SCALE=4000000&FORMAT=image%2Fgif"]}]}],"overviewLayers":[{"baseURL":"http://foo/","format":"image/jpeg",layers:["mylayer"],"opacity":1,"singleTile":false,styles:[""],type:"WMS", "customParams": {"map_resolution": 150}}]};
+            var expect = {"units":"degrees","srs":"EPSG:4326","layout":"A4 portrait","dpi":75,"layers":[{"baseURL":"http://demo.opengeo.org/geoserver/wms","opacity":1,"singleTile":false,"type":"WMS","layers":["topp:tasmania_state_boundaries","topp:tasmania_water_bodies"],"format":"image/gif","styles":[""],"customParams":{"VENDORFOO":"bar", "map_resolution": 150}},{"baseURL":"http://tile.openstreetmap.org/","type":"OSM","opacity":1,"singleTile":false,"maxExtent":map.layers[1].maxExtent.toArray(),"tileSize":[256,256],"resolutions":map.layers[1].resolutions,"extension":"png",layer:undefined},{"baseURL":"http://c0.labs.metacarta.com/wms-c/cache/","opacity":1,"singleTile":false,"type":"TileCache","layer":"basic","maxExtent":[-180,-90,180,90],"tileSize":[256,256],"extension":"png","resolutions":[0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.001373291015625,0.0006866455078125,0.00034332275390625,0.000171661376953125,0.0000858306884765625,0.00004291534423828125,0.000021457672119140625]},{"baseURL":"http://labs.metacarta.com/wms-c/Basic.py/","type":"TMS","opacity":1,"singleTile":false,"extension":undefined,layer:"basic","maxExtent":[-180,-90,180,90],"tileSize":[256,256],"resolutions":[1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.001373291015625,0.0006866455078125,0.00034332275390625,0.000171661376953125,0.0000858306884765625,0.00004291534423828125],format:"png"},{"type":"Image","baseURL":"http://earthtrends.wri.org/images/maps/4_m_citylights_lg.gif","opacity":1,"extent":[-180,-88.759,180,88.759],"pixelSize":[580,288],"name":"image"},{"type":"Vector","minScaleDenominator":50000,"maxScaleDenominator":1000000,"styles":{"1":{"fillColor":"#ee9900","fillOpacity":0.4,"hoverFillColor":"white","hoverFillOpacity":0.8,"strokeColor":"#ee9900","strokeOpacity":1,"strokeWidth":1,"strokeLinecap":"round","strokeDashstyle":"solid","hoverStrokeColor":"red","hoverStrokeOpacity":1,"hoverStrokeWidth":0.2,"pointRadius":6,"hoverPointRadius":1,"hoverPointUnit":"%","pointerEvents":"visiblePainted","cursor":"inherit"}},"styleProperty":"_gx_style","geoJson":{"type":"FeatureCollection","features":[{"type":"Feature","id":"f1","properties":{"_gx_style":1},"geometry":{"type":"Point","coordinates":[1,2]}}]},"name":"vector","opacity":1},{baseURL:"http://wmts0.geo.admin.ch/", opacity:1, singleTile:false, type:"WMTS", layer:"ch.swisstopo.pixelkarte-farbe", version:"1.0.0", requestEncoding:"REST", tileOrigin:[420000, 350000], tileSize:[256, 256], style:"default", formatSuffix:"jpeg", dimensions:["TIME"], params:{TIME:"20110314"}, maxExtent:[420000, 30000, 900000, 350000], matrixSet:"21781", zoomOffset:14, resolutions:[4000, 3750, 3500, 3250, 3000, 2750, 2500, 2250, 2000, 1750, 1500, 1250, 1000, 750, 650, 500, 250, 100, 50, 20, 10, 5, 2.5, 2, 1.5, 1, 0.5]}],"pages":[{"mapTitle":"foo","comment":"bar","center":[1,2],"scale":4000000,"rotation":0}],"customParam":"foo","legends":[{"name":"tilecache","classes":[{"name":"","icon":"http://trac.geoext.org/chrome/site/img/GeoExt.png"}]},{"name":"wms","classes":[{"name":"","icons":["http://demo.opengeo.org/geoserver/wms?VENDORFOO=bar&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&EXCEPTIONS=application%2Fvnd.ogc.se_xml&LAYER=topp%3Atasmania_state_boundaries&SCALE=4000000&FORMAT=image%2Fgif","http://demo.opengeo.org/geoserver/wms?VENDORFOO=bar&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&EXCEPTIONS=application%2Fvnd.ogc.se_xml&LAYER=topp%3Atasmania_water_bodies&SCALE=4000000&FORMAT=image%2Fgif"]}]}],"overviewLayers":[{"baseURL":"http://foo/","format":"image/jpeg",layers:["mylayer"],"opacity":1,"singleTile":false,styles:[""],type:"WMS", "customParams": {"map_resolution": 150}}]};
 
             t.eq(log.request.jsonData, expect, "Request with encoded layers and legend is correct.");
             



More information about the Commits mailing list