Merge pull request #130 from fredj/tile-class

OpenLayers.Layer.Grid: ability to change the tile types. r=tschaub
This commit is contained in:
Frédéric Junod
2012-01-04 22:47:23 -08:00
2 changed files with 31 additions and 4 deletions
+10 -3
View File
@@ -50,6 +50,13 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
* created by this Layer, if supported by the tile class. * created by this Layer, if supported by the tile class.
*/ */
tileOptions: null, tileOptions: null,
/**
* APIProperty: tileClass
* {<OpenLayers.Tile>} The tile class to use for this layer.
* Defaults is OpenLayers.Tile.Image.
*/
tileClass: OpenLayers.Tile.Image,
/** /**
* Property: grid * Property: grid
@@ -900,9 +907,9 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
* Returns: * Returns:
* {<OpenLayers.Tile>} The added OpenLayers.Tile * {<OpenLayers.Tile>} The added OpenLayers.Tile
*/ */
addTile:function(bounds, position) { addTile: function(bounds, position) {
return new OpenLayers.Tile.Image(this, position, bounds, null, return new this.tileClass(this, position, bounds, null,
this.tileSize, this.tileOptions); this.tileSize, this.tileOptions);
}, },
/** /**
+21 -1
View File
@@ -21,13 +21,14 @@
function test_Layer_Grid_constructor (t) { function test_Layer_Grid_constructor (t) {
t.plan( 5 ); t.plan( 6 );
layer = new OpenLayers.Layer.Grid(name, url, params, null); layer = new OpenLayers.Layer.Grid(name, url, params, null);
t.ok( layer instanceof OpenLayers.Layer.Grid, "returns OpenLayers.Layer.Grid object" ); t.ok( layer instanceof OpenLayers.Layer.Grid, "returns OpenLayers.Layer.Grid object" );
t.eq( layer.buffer, 0, "buffer default is 0"); t.eq( layer.buffer, 0, "buffer default is 0");
t.eq( layer.ratio, 1.5, "ratio default is 1.5"); t.eq( layer.ratio, 1.5, "ratio default is 1.5");
t.eq( layer.numLoadingTiles, 0, "numLoadingTiles starts at 0"); t.eq( layer.numLoadingTiles, 0, "numLoadingTiles starts at 0");
t.eq( layer.tileClass, OpenLayers.Tile.Image, "tileClass default is OpenLayers.Tile.Image");
var obj = {}; var obj = {};
var func = function() {}; var func = function() {};
@@ -48,6 +49,25 @@
} }
function test_Layer_Grid_tileClass(t) {
t.plan(2);
var myTileClass = OpenLayers.Class(OpenLayers.Tile, {});
var map = new OpenLayers.Map('map');
layer = new OpenLayers.Layer.WMS(name, url, params, {
tileClass: myTileClass
});
map.addLayer(layer);
t.eq(layer.tileClass, myTileClass, "tileClass is set");
var instance = layer.addTile(new OpenLayers.Bounds(-10, 10, 50, 100),
new OpenLayers.Pixel(10, 12));
t.ok(instance instanceof myTileClass, "addTile returns type is correct");
map.destroy();
}
function test_Layer_Grid_clearTiles (t) { function test_Layer_Grid_clearTiles (t) {
t.plan(4); t.plan(4);