Merge pull request #428 from twpayne/gc-optimizations

GC optimizations
This commit is contained in:
Tom Payne
2013-03-25 03:54:15 -07:00
13 changed files with 128 additions and 124 deletions

View File

@@ -22,8 +22,8 @@ describe('ol.source.TileSource', function() {
var grid = source.getTileGrid();
var range = grid.getTileRangeForExtentAndZ(source.getExtent(), 3);
function getTileIfLoaded(tileCoord) {
var tile = source.getTile(tileCoord, null, null);
function getTileIfLoaded(z, x, y) {
var tile = source.getTile(z, x, y, null, null);
return (!goog.isNull(tile) && tile.getState() === ol.TileState.LOADED) ?
tile : null;
}
@@ -44,8 +44,8 @@ describe('ol.source.TileSource', function() {
var grid = source.getTileGrid();
var range = grid.getTileRangeForExtentAndZ(source.getExtent(), 0);
function getTileIfLoaded(tileCoord) {
var tile = source.getTile(tileCoord, null, null);
function getTileIfLoaded(z, x, y) {
var tile = source.getTile(z, x, y, null, null);
return (!goog.isNull(tile) && tile.getState() === ol.TileState.LOADED) ?
tile : null;
}
@@ -68,8 +68,8 @@ describe('ol.source.TileSource', function() {
var grid = source.getTileGrid();
var range = grid.getTileRangeForExtentAndZ(source.getExtent(), 1);
function getTileIfLoaded(tileCoord) {
var tile = source.getTile(tileCoord, null, null);
function getTileIfLoaded(z, x, y) {
var tile = source.getTile(z, x, y, null, null);
return (!goog.isNull(tile) && tile.getState() === ol.TileState.LOADED) ?
tile : null;
}
@@ -93,8 +93,8 @@ describe('ol.source.TileSource', function() {
var loadedTilesByZ = {};
var grid = source.getTileGrid();
var range = grid.getTileRangeForExtentAndZ(source.getExtent(), 1);
function getTileIfLoaded(tileCoord) {
var tile = source.getTile(tileCoord, null, null);
function getTileIfLoaded(z, x, y) {
var tile = source.getTile(z, x, y, null, null);
return (!goog.isNull(tile) && tile.getState() === ol.TileState.LOADED) ?
tile : null;
}
@@ -119,8 +119,8 @@ describe('ol.source.TileSource', function() {
var grid = source.getTileGrid();
var range = grid.getTileRangeForExtentAndZ(source.getExtent(), 1);
function getTileIfLoaded(tileCoord) {
var tile = source.getTile(tileCoord, null, null);
function getTileIfLoaded(z, x, y) {
var tile = source.getTile(z, x, y, null, null);
return (!goog.isNull(tile) && tile.getState() === ol.TileState.LOADED) ?
tile : null;
}
@@ -142,8 +142,8 @@ describe('ol.source.TileSource', function() {
var grid = source.getTileGrid();
var range = grid.getTileRangeForExtentAndZ(source.getExtent(), 1);
function getTileIfLoaded(tileCoord) {
var tile = source.getTile(tileCoord, null, null);
function getTileIfLoaded(z, x, y) {
var tile = source.getTile(z, x, y, null, null);
return (!goog.isNull(tile) && tile.getState() === ol.TileState.LOADED) ?
tile : null;
}
@@ -167,8 +167,8 @@ describe('ol.source.TileSource', function() {
var grid = source.getTileGrid();
var range = grid.getTileRangeForExtentAndZ(source.getExtent(), 1);
function getTileIfLoaded(tileCoord) {
var tile = source.getTile(tileCoord, null, null);
function getTileIfLoaded(z, x, y) {
var tile = source.getTile(z, x, y, null, null);
return (!goog.isNull(tile) && tile.getState() === ol.TileState.LOADED) ?
tile : null;
}
@@ -219,10 +219,10 @@ goog.inherits(ol.test.source.MockTileSource, ol.source.TileSource);
/**
* @inheritDoc
*/
ol.test.source.MockTileSource.prototype.getTile = function(tileCoord) {
var key = tileCoord.toString();
ol.test.source.MockTileSource.prototype.getTile = function(z, x, y) {
var key = ol.TileCoord.getKeyZXY(z, x, y);
var tileState = this.loaded_[key] ? ol.TileState.LOADED : ol.TileState.IDLE;
return new ol.Tile(tileCoord, tileState);
return new ol.Tile(new ol.TileCoord(z, x, y), tileState);
};
@@ -245,17 +245,17 @@ describe('ol.test.source.MockTileSource', function() {
var tile;
// check a loaded tile
tile = source.getTile(new ol.TileCoord(0, 0, 0));
tile = source.getTile(0, 0, 0);
expect(tile).to.be.a(ol.Tile);
expect(tile.state).to.be(ol.TileState.LOADED);
// check a tile that is not loaded
tile = source.getTile(new ol.TileCoord(1, 0, -1));
tile = source.getTile(1, 0, -1);
expect(tile).to.be.a(ol.Tile);
expect(tile.state).to.be(ol.TileState.IDLE);
// check another loaded tile
tile = source.getTile(new ol.TileCoord(1, 0, 0));
tile = source.getTile(1, 0, 0);
expect(tile).to.be.a(ol.Tile);
expect(tile.state).to.be(ol.TileState.LOADED);

View File

@@ -86,7 +86,9 @@ describe('ol.source.XYZ', function() {
tileCoord,
function(z, tileRange) {
zs.push(z);
tileRanges.push(tileRange);
tileRanges.push(new ol.TileRange(
tileRange.minX, tileRange.minY,
tileRange.maxX, tileRange.maxY));
return false;
});
@@ -129,5 +131,6 @@ describe('ol.source.XYZ', function() {
goog.require('ol.Coordinate');
goog.require('ol.TileCoord');
goog.require('ol.TileRange');
goog.require('ol.tilegrid.XYZ');
goog.require('ol.source.XYZ');

View File

@@ -379,7 +379,7 @@ describe('ol.tilegrid.TileGrid', function() {
});
describe('getTileCoordForCoordAndResolution_', function() {
describe('getTileCoordForXYAndResolution_', function() {
it('returns higher tile coord for intersections by default', function() {
var tileGrid = new ol.tilegrid.TileGrid({
resolutions: resolutions,
@@ -388,21 +388,18 @@ describe('ol.tilegrid.TileGrid', function() {
tileSize: tileSize
});
var coordinate;
var tileCoord;
// gets higher tile for edge intersection
coordinate = new ol.Coordinate(0, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution_(
coordinate, 100);
tileCoord = tileGrid.getTileCoordForXYAndResolution_(
0, 0, 100, false);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(0);
expect(tileCoord.y).to.eql(0);
// gets higher tile for edge intersection
coordinate = new ol.Coordinate(100000, 100000);
tileCoord = tileGrid.getTileCoordForCoordAndResolution_(
coordinate, 100);
tileCoord = tileGrid.getTileCoordForXYAndResolution_(
100000, 100000, 100, false);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(10);
expect(tileCoord.y).to.eql(10);
@@ -417,21 +414,18 @@ describe('ol.tilegrid.TileGrid', function() {
tileSize: tileSize
});
var coordinate;
var tileCoord;
// can get lower tile for edge intersection
coordinate = new ol.Coordinate(0, 0);
tileCoord = tileGrid.getTileCoordForCoordAndResolution_(
coordinate, 100, true);
tileCoord = tileGrid.getTileCoordForXYAndResolution_(
0, 0, 100, true);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(-1);
expect(tileCoord.y).to.eql(-1);
// gets higher tile for edge intersection
coordinate = new ol.Coordinate(100000, 100000);
tileCoord = tileGrid.getTileCoordForCoordAndResolution_(
coordinate, 100, true);
tileCoord = tileGrid.getTileCoordForXYAndResolution_(
100000, 100000, 100, true);
expect(tileCoord.z).to.eql(3);
expect(tileCoord.x).to.eql(9);
expect(tileCoord.y).to.eql(9);