[Commits] r1035 - in core/trunk/geoext: lib/GeoExt/data tests/lib/GeoExt/data
commits at geoext.org
commits at geoext.org
Wed Jun 10 00:09:26 CEST 2009
Author: tschaub
Date: 2009-06-10 00:09:26 +0200 (Wed, 10 Jun 2009)
New Revision: 1035
Modified:
core/trunk/geoext/lib/GeoExt/data/ScaleStore.js
core/trunk/geoext/tests/lib/GeoExt/data/ScaleStore.html
Log:
Making it so the ScaleStore has a record for each value in the resolutions array of the base layer. r=ahocevar (closes #84)
Modified: core/trunk/geoext/lib/GeoExt/data/ScaleStore.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/data/ScaleStore.js 2009-06-09 22:05:57 UTC (rev 1034)
+++ core/trunk/geoext/lib/GeoExt/data/ScaleStore.js 2009-06-09 22:09:26 UTC (rev 1035)
@@ -49,7 +49,9 @@
GeoExt.data.ScaleStore.superclass.constructor.call(this, config);
- if (map) this.bind(map);
+ if (map) {
+ this.bind(map);
+ }
},
/** api: method[bind]
@@ -104,13 +106,16 @@
*/
populateFromMap: function() {
var zooms = [];
+ var resolutions = this.map.baseLayer.resolutions;
+ var units = this.map.baseLayer.units;
- for (var i = this.map.numZoomLevels-1; i > 0; i--) {
- var res = this.map.getResolutionForZoom(i);
- var units = this.map.baseLayer.units;
- var scale = OpenLayers.Util.getScaleFromResolution(res, units);
-
- zooms.push({level: i, resolution: res, scale: scale});
+ for (var i=resolutions.length-1; i >= 0; i--) {
+ var res = resolutions[i];
+ zooms.push({
+ level: i,
+ resolution: res,
+ scale: OpenLayers.Util.getScaleFromResolution(res, units)
+ });
}
this.loadData(zooms);
Modified: core/trunk/geoext/tests/lib/GeoExt/data/ScaleStore.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/data/ScaleStore.html 2009-06-09 22:05:57 UTC (rev 1034)
+++ core/trunk/geoext/tests/lib/GeoExt/data/ScaleStore.html 2009-06-09 22:09:26 UTC (rev 1035)
@@ -45,6 +45,8 @@
map = createMap();
store = new GeoExt.data.ScaleStore({map: map});
t.ok(store.map == map, "ctor sets the passed map in the instance");
+
+ map.destroy();
}
function test_bind_unbind(t) {
@@ -84,15 +86,31 @@
store.unbind();
t.eq(map.events.listeners["changebaselayer"][0], undefined,
"unbind unregisters changebaselayer listener (map has a base layer)");
+
+ map.destroy();
}
function test_scalestore(t) {
- t.plan(1);
+ t.plan(3);
var mapPanel = loadMapPanel();
var map = mapPanel.map;
var store = new GeoExt.data.ScaleStore({map: map});
- t.eq(store.data.length, 15, 'Found expected number of zoomlevels');
+ var levels = map.baseLayer.resolutions.length;
+ t.eq(store.getCount(), levels,
+ 'Found expected number of zoomlevels: ' + levels);
+
+ var low = store.getAt(0).get("resolution");
+ t.eq(low, map.baseLayer.resolutions[levels-1],
+ 'First record has lowest res value: ' + low);
+
+ var high = store.getAt(levels-1).get("resolution");
+ t.eq(high, map.baseLayer.resolutions[0],
+ 'Last record has highest res value: ' + high);
+
+ map.destroy();
+ mapPanel.destroy();
+
}
</script>
More information about the Commits
mailing list