Add ol.geom.{de,in}flateCoordinatess
This commit is contained in:
@@ -264,6 +264,30 @@ ol.geom.deflateCoordinates =
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {Array.<number>} flatCoordinates Flat coordinates.
|
||||
* @param {number} offset Offset.
|
||||
* @param {Array.<Array.<ol.Coordinate>>} coordinatess Coordinatess.
|
||||
* @param {number} stride Stride.
|
||||
* @param {Array.<number>=} opt_ends Ends.
|
||||
* @return {Array.<number>} Ends.
|
||||
*/
|
||||
ol.geom.deflateCoordinatess =
|
||||
function(flatCoordinates, offset, coordinatess, stride, opt_ends) {
|
||||
var ends = goog.isDef(opt_ends) ? opt_ends : [];
|
||||
var i = 0;
|
||||
var j, jj;
|
||||
for (j = 0, jj = coordinatess.length; j < jj; ++j) {
|
||||
var end = ol.geom.deflateCoordinates(
|
||||
flatCoordinates, offset, coordinatess[j], stride);
|
||||
ends[i++] = end;
|
||||
offset = end;
|
||||
}
|
||||
ends.length = i;
|
||||
return ends;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {Array.<number>} flatCoordinates Flat coordinates.
|
||||
* @param {number} offset Offset.
|
||||
@@ -283,3 +307,27 @@ ol.geom.inflateCoordinates =
|
||||
coordinates.length = i;
|
||||
return coordinates;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {Array.<number>} flatCoordinates Flat coordinates.
|
||||
* @param {number} offset Offset.
|
||||
* @param {Array.<number>} ends Ends.
|
||||
* @param {number} stride Stride.
|
||||
* @param {Array.<Array.<ol.Coordinate>>=} opt_coordinatess Coordinatess.
|
||||
* @return {Array.<Array.<ol.Coordinate>>} Coordinatess.
|
||||
*/
|
||||
ol.geom.inflateCoordinatess =
|
||||
function(flatCoordinates, offset, ends, stride, opt_coordinatess) {
|
||||
var coordinatess = goog.isDef(opt_coordinatess) ? opt_coordinatess : [];
|
||||
var i = 0;
|
||||
var j, jj;
|
||||
for (j = 0, jj = ends.length; j < jj; ++j) {
|
||||
var end = ends[j];
|
||||
coordinatess[i++] = ol.geom.inflateCoordinates(
|
||||
flatCoordinates, offset, end, stride, coordinatess[i]);
|
||||
offset = end;
|
||||
}
|
||||
coordinatess.length = i;
|
||||
return coordinatess;
|
||||
};
|
||||
|
||||
@@ -19,6 +19,21 @@ describe('ol.geom', function() {
|
||||
|
||||
});
|
||||
|
||||
describe('ol.geom.deflateCoordinatess', function() {
|
||||
|
||||
var flatCoordinates;
|
||||
beforeEach(function() {
|
||||
flatCoordinates = [];
|
||||
});
|
||||
|
||||
it('flattens arrays of coordinates', function() {
|
||||
var ends = ol.geom.deflateCoordinatess(flatCoordinates, 0,
|
||||
[[[1, 2], [3, 4]], [[5, 6], [7, 8]]], 2);
|
||||
expect(ends).to.eql([4, 8]);
|
||||
expect(flatCoordinates).to.eql([1, 2, 3, 4, 5, 6, 7, 8]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('ol.geom.inflateCoordinates', function() {
|
||||
|
||||
it('inflates coordinates', function() {
|
||||
@@ -28,4 +43,13 @@ describe('ol.geom', function() {
|
||||
|
||||
});
|
||||
|
||||
describe('ol.geom.inflateCoordinatess', function() {
|
||||
|
||||
it('inflates arrays of coordinates', function() {
|
||||
var coordinatess = ol.geom.inflateCoordinatess([1, 2, 3, 4, 5, 6, 7, 8],
|
||||
0, [4, 8], 2);
|
||||
expect(coordinatess).to.eql([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user