Named export for Polyline format
This commit is contained in:
+27
-28
@@ -65,7 +65,7 @@ inherits(Polyline, TextFeature);
|
|||||||
* @return {string} The encoded string.
|
* @return {string} The encoded string.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
Polyline.encodeDeltas = function(numbers, stride, opt_factor) {
|
export function encodeDeltas(numbers, stride, opt_factor) {
|
||||||
var factor = opt_factor ? opt_factor : 1e5;
|
var factor = opt_factor ? opt_factor : 1e5;
|
||||||
var d;
|
var d;
|
||||||
|
|
||||||
@@ -85,8 +85,8 @@ Polyline.encodeDeltas = function(numbers, stride, opt_factor) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Polyline.encodeFloats(numbers, factor);
|
return encodeFloats(numbers, factor);
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -100,7 +100,7 @@ Polyline.encodeDeltas = function(numbers, stride, opt_factor) {
|
|||||||
* @return {Array.<number>} A list of n-dimensional points.
|
* @return {Array.<number>} A list of n-dimensional points.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
Polyline.decodeDeltas = function(encoded, stride, opt_factor) {
|
export function decodeDeltas(encoded, stride, opt_factor) {
|
||||||
var factor = opt_factor ? opt_factor : 1e5;
|
var factor = opt_factor ? opt_factor : 1e5;
|
||||||
var d;
|
var d;
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ Polyline.decodeDeltas = function(encoded, stride, opt_factor) {
|
|||||||
lastNumbers[d] = 0;
|
lastNumbers[d] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
var numbers = Polyline.decodeFloats(encoded, factor);
|
var numbers = decodeFloats(encoded, factor);
|
||||||
|
|
||||||
var i, ii;
|
var i, ii;
|
||||||
for (i = 0, ii = numbers.length; i < ii;) {
|
for (i = 0, ii = numbers.length; i < ii;) {
|
||||||
@@ -122,7 +122,7 @@ Polyline.decodeDeltas = function(encoded, stride, opt_factor) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return numbers;
|
return numbers;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -137,15 +137,15 @@ Polyline.decodeDeltas = function(encoded, stride, opt_factor) {
|
|||||||
* @return {string} The encoded string.
|
* @return {string} The encoded string.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
Polyline.encodeFloats = function(numbers, opt_factor) {
|
export function encodeFloats(numbers, opt_factor) {
|
||||||
var factor = opt_factor ? opt_factor : 1e5;
|
var factor = opt_factor ? opt_factor : 1e5;
|
||||||
var i, ii;
|
var i, ii;
|
||||||
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
||||||
numbers[i] = Math.round(numbers[i] * factor);
|
numbers[i] = Math.round(numbers[i] * factor);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Polyline.encodeSignedIntegers(numbers);
|
return encodeSignedIntegers(numbers);
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -157,15 +157,15 @@ Polyline.encodeFloats = function(numbers, opt_factor) {
|
|||||||
* @return {Array.<number>} A list of floating point numbers.
|
* @return {Array.<number>} A list of floating point numbers.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
Polyline.decodeFloats = function(encoded, opt_factor) {
|
export function decodeFloats(encoded, opt_factor) {
|
||||||
var factor = opt_factor ? opt_factor : 1e5;
|
var factor = opt_factor ? opt_factor : 1e5;
|
||||||
var numbers = Polyline.decodeSignedIntegers(encoded);
|
var numbers = decodeSignedIntegers(encoded);
|
||||||
var i, ii;
|
var i, ii;
|
||||||
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
||||||
numbers[i] /= factor;
|
numbers[i] /= factor;
|
||||||
}
|
}
|
||||||
return numbers;
|
return numbers;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -176,14 +176,14 @@ Polyline.decodeFloats = function(encoded, opt_factor) {
|
|||||||
* @param {Array.<number>} numbers A list of signed integers.
|
* @param {Array.<number>} numbers A list of signed integers.
|
||||||
* @return {string} The encoded string.
|
* @return {string} The encoded string.
|
||||||
*/
|
*/
|
||||||
Polyline.encodeSignedIntegers = function(numbers) {
|
export function encodeSignedIntegers(numbers) {
|
||||||
var i, ii;
|
var i, ii;
|
||||||
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
||||||
var num = numbers[i];
|
var num = numbers[i];
|
||||||
numbers[i] = (num < 0) ? ~(num << 1) : (num << 1);
|
numbers[i] = (num < 0) ? ~(num << 1) : (num << 1);
|
||||||
}
|
}
|
||||||
return Polyline.encodeUnsignedIntegers(numbers);
|
return encodeUnsignedIntegers(numbers);
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -192,15 +192,15 @@ Polyline.encodeSignedIntegers = function(numbers) {
|
|||||||
* @param {string} encoded An encoded string.
|
* @param {string} encoded An encoded string.
|
||||||
* @return {Array.<number>} A list of signed integers.
|
* @return {Array.<number>} A list of signed integers.
|
||||||
*/
|
*/
|
||||||
Polyline.decodeSignedIntegers = function(encoded) {
|
export function decodeSignedIntegers(encoded) {
|
||||||
var numbers = Polyline.decodeUnsignedIntegers(encoded);
|
var numbers = decodeUnsignedIntegers(encoded);
|
||||||
var i, ii;
|
var i, ii;
|
||||||
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
||||||
var num = numbers[i];
|
var num = numbers[i];
|
||||||
numbers[i] = (num & 1) ? ~(num >> 1) : (num >> 1);
|
numbers[i] = (num & 1) ? ~(num >> 1) : (num >> 1);
|
||||||
}
|
}
|
||||||
return numbers;
|
return numbers;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -209,14 +209,14 @@ Polyline.decodeSignedIntegers = function(encoded) {
|
|||||||
* @param {Array.<number>} numbers A list of unsigned integers.
|
* @param {Array.<number>} numbers A list of unsigned integers.
|
||||||
* @return {string} The encoded string.
|
* @return {string} The encoded string.
|
||||||
*/
|
*/
|
||||||
Polyline.encodeUnsignedIntegers = function(numbers) {
|
export function encodeUnsignedIntegers(numbers) {
|
||||||
var encoded = '';
|
var encoded = '';
|
||||||
var i, ii;
|
var i, ii;
|
||||||
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
for (i = 0, ii = numbers.length; i < ii; ++i) {
|
||||||
encoded += Polyline.encodeUnsignedInteger(numbers[i]);
|
encoded += encodeUnsignedInteger(numbers[i]);
|
||||||
}
|
}
|
||||||
return encoded;
|
return encoded;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -225,7 +225,7 @@ Polyline.encodeUnsignedIntegers = function(numbers) {
|
|||||||
* @param {string} encoded An encoded string.
|
* @param {string} encoded An encoded string.
|
||||||
* @return {Array.<number>} A list of unsigned integers.
|
* @return {Array.<number>} A list of unsigned integers.
|
||||||
*/
|
*/
|
||||||
Polyline.decodeUnsignedIntegers = function(encoded) {
|
export function decodeUnsignedIntegers(encoded) {
|
||||||
var numbers = [];
|
var numbers = [];
|
||||||
var current = 0;
|
var current = 0;
|
||||||
var shift = 0;
|
var shift = 0;
|
||||||
@@ -242,7 +242,7 @@ Polyline.decodeUnsignedIntegers = function(encoded) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return numbers;
|
return numbers;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -251,7 +251,7 @@ Polyline.decodeUnsignedIntegers = function(encoded) {
|
|||||||
* @param {number} num Unsigned integer that should be encoded.
|
* @param {number} num Unsigned integer that should be encoded.
|
||||||
* @return {string} The encoded string.
|
* @return {string} The encoded string.
|
||||||
*/
|
*/
|
||||||
Polyline.encodeUnsignedInteger = function(num) {
|
export function encodeUnsignedInteger(num) {
|
||||||
var value, encoded = '';
|
var value, encoded = '';
|
||||||
while (num >= 0x20) {
|
while (num >= 0x20) {
|
||||||
value = (0x20 | (num & 0x1f)) + 63;
|
value = (0x20 | (num & 0x1f)) + 63;
|
||||||
@@ -261,7 +261,7 @@ Polyline.encodeUnsignedInteger = function(num) {
|
|||||||
value = num + 63;
|
value = num + 63;
|
||||||
encoded += String.fromCharCode(value);
|
encoded += String.fromCharCode(value);
|
||||||
return encoded;
|
return encoded;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -325,8 +325,7 @@ Polyline.prototype.readGeometry;
|
|||||||
*/
|
*/
|
||||||
Polyline.prototype.readGeometryFromText = function(text, opt_options) {
|
Polyline.prototype.readGeometryFromText = function(text, opt_options) {
|
||||||
var stride = getStrideForLayout(this.geometryLayout_);
|
var stride = getStrideForLayout(this.geometryLayout_);
|
||||||
var flatCoordinates = Polyline.decodeDeltas(
|
var flatCoordinates = decodeDeltas(text, stride, this.factor_);
|
||||||
text, stride, this.factor_);
|
|
||||||
_ol_geom_flat_flip_.flipXY(
|
_ol_geom_flat_flip_.flipXY(
|
||||||
flatCoordinates, 0, flatCoordinates.length, stride, flatCoordinates);
|
flatCoordinates, 0, flatCoordinates.length, stride, flatCoordinates);
|
||||||
var coordinates = _ol_geom_flat_inflate_.coordinates(
|
var coordinates = _ol_geom_flat_inflate_.coordinates(
|
||||||
@@ -396,6 +395,6 @@ Polyline.prototype.writeGeometryText = function(geometry, opt_options) {
|
|||||||
var stride = geometry.getStride();
|
var stride = geometry.getStride();
|
||||||
_ol_geom_flat_flip_.flipXY(
|
_ol_geom_flat_flip_.flipXY(
|
||||||
flatCoordinates, 0, flatCoordinates.length, stride, flatCoordinates);
|
flatCoordinates, 0, flatCoordinates.length, stride, flatCoordinates);
|
||||||
return Polyline.encodeDeltas(flatCoordinates, stride, this.factor_);
|
return encodeDeltas(flatCoordinates, stride, this.factor_);
|
||||||
};
|
};
|
||||||
export default Polyline;
|
export default Polyline;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import _ol_Feature_ from '../../../../src/ol/Feature.js';
|
import _ol_Feature_ from '../../../../src/ol/Feature.js';
|
||||||
import Polyline from '../../../../src/ol/format/Polyline.js';
|
import Polyline, * as polyline from '../../../../src/ol/format/Polyline.js';
|
||||||
import LineString from '../../../../src/ol/geom/LineString.js';
|
import LineString from '../../../../src/ol/geom/LineString.js';
|
||||||
import {get as getProjection, transform} from '../../../../src/ol/proj.js';
|
import {get as getProjection, transform} from '../../../../src/ol/proj.js';
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('encodeDeltas', function() {
|
describe('encodeDeltas', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var encodeDeltas = Polyline.encodeDeltas;
|
var encodeDeltas = polyline.encodeDeltas;
|
||||||
|
|
||||||
expect(encodeDeltas(flippedFlatPoints, 2)).to.eql(encodedFlatPoints);
|
expect(encodeDeltas(flippedFlatPoints, 2)).to.eql(encodedFlatPoints);
|
||||||
});
|
});
|
||||||
@@ -68,7 +68,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('decodeDeltas', function() {
|
describe('decodeDeltas', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var decodeDeltas = Polyline.decodeDeltas;
|
var decodeDeltas = polyline.decodeDeltas;
|
||||||
|
|
||||||
expect(decodeDeltas(encodedFlatPoints, 2)).to.eql(flippedFlatPoints);
|
expect(decodeDeltas(encodedFlatPoints, 2)).to.eql(flippedFlatPoints);
|
||||||
});
|
});
|
||||||
@@ -77,7 +77,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('encodeFloats', function() {
|
describe('encodeFloats', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var encodeFloats = Polyline.encodeFloats;
|
var encodeFloats = polyline.encodeFloats;
|
||||||
|
|
||||||
expect(encodeFloats(smallFloats)).to.eql(encodedFloats);
|
expect(encodeFloats(smallFloats)).to.eql(encodedFloats);
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('decodeFloats', function() {
|
describe('decodeFloats', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var decodeFloats = Polyline.decodeFloats;
|
var decodeFloats = polyline.decodeFloats;
|
||||||
|
|
||||||
expect(decodeFloats(encodedFloats)).to.eql(smallFloats);
|
expect(decodeFloats(encodedFloats)).to.eql(smallFloats);
|
||||||
expect(decodeFloats(encodedFloats, 1e5)).to.eql(smallFloats);
|
expect(decodeFloats(encodedFloats, 1e5)).to.eql(smallFloats);
|
||||||
@@ -101,7 +101,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('encodeSignedIntegers', function() {
|
describe('encodeSignedIntegers', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var encodeSignedIntegers = Polyline.encodeSignedIntegers;
|
var encodeSignedIntegers = polyline.encodeSignedIntegers;
|
||||||
|
|
||||||
expect(encodeSignedIntegers(
|
expect(encodeSignedIntegers(
|
||||||
signedIntegers)).to.eql(encodedSignedIntegers);
|
signedIntegers)).to.eql(encodedSignedIntegers);
|
||||||
@@ -110,7 +110,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('decodeSignedIntegers', function() {
|
describe('decodeSignedIntegers', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var decodeSignedIntegers = Polyline.decodeSignedIntegers;
|
var decodeSignedIntegers = polyline.decodeSignedIntegers;
|
||||||
|
|
||||||
expect(decodeSignedIntegers(
|
expect(decodeSignedIntegers(
|
||||||
encodedSignedIntegers)).to.eql(signedIntegers);
|
encodedSignedIntegers)).to.eql(signedIntegers);
|
||||||
@@ -120,7 +120,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('encodeUnsignedIntegers', function() {
|
describe('encodeUnsignedIntegers', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var encodeUnsignedIntegers = Polyline.encodeUnsignedIntegers;
|
var encodeUnsignedIntegers = polyline.encodeUnsignedIntegers;
|
||||||
|
|
||||||
expect(encodeUnsignedIntegers(
|
expect(encodeUnsignedIntegers(
|
||||||
unsignedIntegers)).to.eql(encodedUnsignedIntegers);
|
unsignedIntegers)).to.eql(encodedUnsignedIntegers);
|
||||||
@@ -129,7 +129,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('decodeUnsignedIntegers', function() {
|
describe('decodeUnsignedIntegers', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var decodeUnsignedIntegers = Polyline.decodeUnsignedIntegers;
|
var decodeUnsignedIntegers = polyline.decodeUnsignedIntegers;
|
||||||
|
|
||||||
expect(decodeUnsignedIntegers(
|
expect(decodeUnsignedIntegers(
|
||||||
encodedUnsignedIntegers)).to.eql(unsignedIntegers);
|
encodedUnsignedIntegers)).to.eql(unsignedIntegers);
|
||||||
@@ -139,7 +139,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('encodeFloat', function() {
|
describe('encodeFloat', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var encodeFloats = Polyline.encodeFloats;
|
var encodeFloats = polyline.encodeFloats;
|
||||||
|
|
||||||
expect(encodeFloats([0.00000])).to.eql('?');
|
expect(encodeFloats([0.00000])).to.eql('?');
|
||||||
expect(encodeFloats([-0.00001])).to.eql('@');
|
expect(encodeFloats([-0.00001])).to.eql('@');
|
||||||
@@ -162,7 +162,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('decodeFloat', function() {
|
describe('decodeFloat', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var decodeFloats = Polyline.decodeFloats;
|
var decodeFloats = polyline.decodeFloats;
|
||||||
|
|
||||||
expect(decodeFloats('?')).to.eql([0.00000]);
|
expect(decodeFloats('?')).to.eql([0.00000]);
|
||||||
expect(decodeFloats('@')).to.eql([-0.00001]);
|
expect(decodeFloats('@')).to.eql([-0.00001]);
|
||||||
@@ -186,7 +186,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('encodeSignedInteger', function() {
|
describe('encodeSignedInteger', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var encodeSignedIntegers = Polyline.encodeSignedIntegers;
|
var encodeSignedIntegers = polyline.encodeSignedIntegers;
|
||||||
|
|
||||||
expect(encodeSignedIntegers([0])).to.eql('?');
|
expect(encodeSignedIntegers([0])).to.eql('?');
|
||||||
expect(encodeSignedIntegers([-1])).to.eql('@');
|
expect(encodeSignedIntegers([-1])).to.eql('@');
|
||||||
@@ -204,7 +204,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('decodeSignedInteger', function() {
|
describe('decodeSignedInteger', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var decodeSignedIntegers = Polyline.decodeSignedIntegers;
|
var decodeSignedIntegers = polyline.decodeSignedIntegers;
|
||||||
|
|
||||||
expect(decodeSignedIntegers('?')).to.eql([0]);
|
expect(decodeSignedIntegers('?')).to.eql([0]);
|
||||||
expect(decodeSignedIntegers('@')).to.eql([-1]);
|
expect(decodeSignedIntegers('@')).to.eql([-1]);
|
||||||
@@ -223,7 +223,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('encodeUnsignedInteger', function() {
|
describe('encodeUnsignedInteger', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var encodeUnsignedInteger = Polyline.encodeUnsignedInteger;
|
var encodeUnsignedInteger = polyline.encodeUnsignedInteger;
|
||||||
|
|
||||||
expect(encodeUnsignedInteger(0)).to.eql('?');
|
expect(encodeUnsignedInteger(0)).to.eql('?');
|
||||||
expect(encodeUnsignedInteger(1)).to.eql('@');
|
expect(encodeUnsignedInteger(1)).to.eql('@');
|
||||||
@@ -243,7 +243,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
|
|
||||||
describe('decodeUnsignedInteger', function() {
|
describe('decodeUnsignedInteger', function() {
|
||||||
it('returns expected value', function() {
|
it('returns expected value', function() {
|
||||||
var decodeUnsignedIntegers = Polyline.decodeUnsignedIntegers;
|
var decodeUnsignedIntegers = polyline.decodeUnsignedIntegers;
|
||||||
|
|
||||||
expect(decodeUnsignedIntegers('?')).to.eql([0]);
|
expect(decodeUnsignedIntegers('?')).to.eql([0]);
|
||||||
expect(decodeUnsignedIntegers('@')).to.eql([1]);
|
expect(decodeUnsignedIntegers('@')).to.eql([1]);
|
||||||
@@ -320,7 +320,7 @@ describe('ol.format.Polyline', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('parses XYZ linestring', function() {
|
it('parses XYZ linestring', function() {
|
||||||
var xyz = Polyline.encodeDeltas([
|
var xyz = polyline.encodeDeltas([
|
||||||
38.500, -120.200, 100,
|
38.500, -120.200, 100,
|
||||||
40.700, -120.950, 200,
|
40.700, -120.950, 200,
|
||||||
43.252, -126.453, 20
|
43.252, -126.453, 20
|
||||||
|
|||||||
Reference in New Issue
Block a user