From 9f0738aa99e57d7da56887aff425e70b86ddcc96 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 5 Jul 2012 14:31:03 +0200 Subject: [PATCH] Add ol.TileCoord --- doc/ol3.md | 3 --- src/all.js | 1 + src/ol/tilecoord.js | 32 ++++++++++++++++++++++++++++++++ src/ol/tilecoord_test.js | 17 +++++++++++++++++ 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 src/ol/tilecoord.js create mode 100644 src/ol/tilecoord_test.js diff --git a/doc/ol3.md b/doc/ol3.md index 2f38f28275..de3c368326 100644 --- a/doc/ol3.md +++ b/doc/ol3.md @@ -3,9 +3,6 @@ CLASS HIERARCHY ``` goog.math.Coordinate // Simple 2D point - - -goog.math.Coordinate3 | +- TileCoord diff --git a/src/all.js b/src/all.js index 9c54b54632..47a9231ed7 100644 --- a/src/all.js +++ b/src/all.js @@ -2,3 +2,4 @@ goog.provide('ol'); goog.require('ol.MVCObject'); goog.require('ol.MVCArray'); +goog.require('ol.TileCoord'); diff --git a/src/ol/tilecoord.js b/src/ol/tilecoord.js new file mode 100644 index 0000000000..9651586460 --- /dev/null +++ b/src/ol/tilecoord.js @@ -0,0 +1,32 @@ +goog.provide('ol.TileCoord'); + +goog.require('goog.math.Coordinate'); + + + +/** + * @constructor + * @extends {goog.math.Coordinate} + * @param {number} z Z. + * @param {number} x X. + * @param {number} y Y. + */ +ol.TileCoord = function(z, x, y) { + + goog.base(this, x, y); + + /** + * @type {number} + */ + this.z = z; + +}; +goog.inherits(ol.TileCoord, goog.math.Coordinate); + + +/** + * @return {number} Hash. + */ +ol.TileCoord.prototype.hash = function() { + return (this.x << this.z) + this.y; +}; diff --git a/src/ol/tilecoord_test.js b/src/ol/tilecoord_test.js new file mode 100644 index 0000000000..d017085fa5 --- /dev/null +++ b/src/ol/tilecoord_test.js @@ -0,0 +1,17 @@ +goog.require('goog.testing.jsunit'); +goog.require('ol.TileCoord'); + + +function testConstructorOrderZXY() { + var tc1 = new ol.TileCoord(1, 2, 3); + assertEquals(1, tc1.z); + assertEquals(2, tc1.x); + assertEquals(3, tc1.y); +} + + +function testHashX() { + var tc1 = new ol.TileCoord(3, 2, 1); + var tc2 = new ol.TileCoord(3, 1, 1); + assertTrue(tc1.hash() != tc2.hash()); +}