Named export for Polyline format

This commit is contained in:
Frederic Junod
2017-12-21 09:12:43 +01:00
parent 6d4621baeb
commit a1d5f50c3d
2 changed files with 43 additions and 44 deletions
+27 -28
View File
@@ -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;
+16 -16
View File
@@ -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