Location transform in api.
This commit is contained in:
@@ -65,6 +65,23 @@ ol.loc = function(opt_arg){
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transform this location to another coordinate reference system. This
|
||||||
|
* requires that this location has a projection set already (if not, an error
|
||||||
|
* will be thrown). Returns a new location object and does not modify this
|
||||||
|
* location.
|
||||||
|
*
|
||||||
|
* @export
|
||||||
|
* @param {string|ol.Projection} proj The destination projection. Can be
|
||||||
|
* supplied as a projection instance of a string identifier.
|
||||||
|
* @returns {ol.Loc} A new location.
|
||||||
|
*/
|
||||||
|
ol.Loc.prototype.transform = function(proj) {
|
||||||
|
if (goog.isString(proj)) {
|
||||||
|
proj = new ol.Projection(proj);
|
||||||
|
}
|
||||||
|
return this.doTransform(proj);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @export
|
* @export
|
||||||
|
|||||||
@@ -104,31 +104,13 @@ ol.Loc.prototype.setZ = function(z) {
|
|||||||
this.z_ = z;
|
this.z_ = z;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Transform this location to another coordinate reference system. This
|
|
||||||
* requires that this location has a projection set already (if not, an error
|
|
||||||
* will be thrown). Returns a new location object and does not modify this
|
|
||||||
* location.
|
|
||||||
*
|
|
||||||
* @export
|
|
||||||
* @param {string|!ol.Projection} proj The destination projection. Can be
|
|
||||||
* supplied as a projection instance of a string identifier.
|
|
||||||
* @returns {!ol.Loc} A new location.
|
|
||||||
*/
|
|
||||||
ol.Loc.prototype.transform = function(proj) {
|
|
||||||
if (goog.isString(proj)) {
|
|
||||||
proj = new ol.Projection(proj);
|
|
||||||
}
|
|
||||||
return this._transform(proj);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transform this location to a new location given a projection object.
|
* Transform this location to a new location given a projection object.
|
||||||
*
|
*
|
||||||
* @param {!ol.Projection} proj The destination projection.
|
* @param {ol.Projection} proj The destination projection.
|
||||||
* @returns {!ol.Loc}
|
* @returns {ol.Loc}
|
||||||
*/
|
*/
|
||||||
ol.Loc.prototype._transform = function(proj) {
|
ol.Loc.prototype.doTransform = function(proj) {
|
||||||
var point = {'x': this.x_, 'y': this.y_};
|
var point = {'x': this.x_, 'y': this.y_};
|
||||||
var sourceProj = this.projection_;
|
var sourceProj = this.projection_;
|
||||||
if (!goog.isDefAndNotNull(sourceProj)) {
|
if (!goog.isDefAndNotNull(sourceProj)) {
|
||||||
|
|||||||
@@ -164,12 +164,16 @@ ol.Projection.addTransform = function(from, to, method) {
|
|||||||
/**
|
/**
|
||||||
* Transform a point coordinate from one projection to another.
|
* Transform a point coordinate from one projection to another.
|
||||||
*
|
*
|
||||||
* @param {!Object} point Object with x and y properties.
|
* @param {Object} point Object with x and y properties.
|
||||||
* @param {!ol.Projection} source Source projection.
|
* @param {ol.Projection} source Source projection.
|
||||||
* @param {!ol.Projection} dest Destination projection.
|
* @param {ol.Projection} dest Destination projection.
|
||||||
*/
|
*/
|
||||||
ol.Projection.transform = function(point, source, dest) {
|
ol.Projection.transform = function(point, source, dest) {
|
||||||
|
goog.asserts.assertObject(point);
|
||||||
|
goog.asserts.assertObject(source);
|
||||||
|
goog.asserts.assertObject(dest);
|
||||||
if (source.proj_ && dest.proj_) {
|
if (source.proj_ && dest.proj_) {
|
||||||
|
// TODO: implement Proj4js handling
|
||||||
// point = Proj4js.transform(source.proj_, dest.proj_, point);
|
// point = Proj4js.transform(source.proj_, dest.proj_, point);
|
||||||
} else {
|
} else {
|
||||||
var sourceCode = source.getCode();
|
var sourceCode = source.getCode();
|
||||||
|
|||||||
Reference in New Issue
Block a user