From b30d0c314be07e942047e972258a8901501af45d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 14 Jul 2012 19:54:41 +0200 Subject: [PATCH] Add pixel to/from coordinate transforms --- src/ol/map.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/ol/map.js b/src/ol/map.js index 11af7869a7..399116d78b 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -128,6 +128,23 @@ ol.Map.prototype.getCenter = function() { }; +/** + * @param {goog.math.Coordinate} pixel Pixel. + * @return {goog.math.Coordinate} Coordinate. + */ +ol.Map.prototype.getCoordinateFromPixel = function(pixel) { + var center = this.getCenter(); + goog.asserts.assert(goog.isDef(center)); + var resolution = this.getResolution(); + goog.asserts.assert(goog.isDef(resolution)); + var size = this.getSize(); + goog.asserts.assert(goog.isDef(size)); + var x = center.x + resolution * (pixel.x - size.width / 2); + var y = center.y - resolution * (pixel.y - size.height / 2); + return new goog.math.Coordinate(x, y); +}; + + /** * @return {ol.Extent|undefined} Extent. */ @@ -144,6 +161,23 @@ ol.Map.prototype.getLayers = function() { }; +/** + * @param {goog.math.Coordinate} coordinate Coordinate. + * @return {goog.math.Coordinate} Pixel. + */ +ol.Map.prototype.getPixelFromCoordinate = function(coordinate) { + var center = this.getCenter(); + goog.asserts.assert(goog.isDef(center)); + var resolution = this.getResolution(); + goog.asserts.assert(goog.isDef(resolution)); + var size = this.getSize(); + goog.asserts.assert(goog.isDef(size)); + var x = (coordinate.x - center.x) / resolution + size.width / 2; + var y = (center.y - coordinate.y) / resolution + size.height / 2; + return new goog.math.Coordinate(x, y); +}; + + /** * @return {ol.Projection} Projection. */