From 7ca47e3b2ae3db92291c6766944e5b49f9f3a142 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 28 Feb 2014 15:36:06 +0100 Subject: [PATCH 1/2] Add ol.geom.SimpleGeometry#getFirstCoordinate --- src/ol/geom/simplegeometry.exports | 1 + src/ol/geom/simplegeometry.js | 8 ++++++++ test/spec/ol/geom/linestring.test.js | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/src/ol/geom/simplegeometry.exports b/src/ol/geom/simplegeometry.exports index 89c0067b62..dfdcaba588 100644 --- a/src/ol/geom/simplegeometry.exports +++ b/src/ol/geom/simplegeometry.exports @@ -1,5 +1,6 @@ @exportSymbol ol.geom.SimpleGeometry @exportProperty ol.geom.SimpleGeometry.prototype.getExtent +@exportProperty ol.geom.SimpleGeometry.prototype.getFirstCoordinate @exportProperty ol.geom.SimpleGeometry.prototype.getLayout @exportProperty ol.geom.SimpleGeometry.prototype.getSimplifiedGeometry @exportProperty ol.geom.SimpleGeometry.prototype.transform diff --git a/src/ol/geom/simplegeometry.js b/src/ol/geom/simplegeometry.js index 7fa378bf29..0f0d5aa47c 100644 --- a/src/ol/geom/simplegeometry.js +++ b/src/ol/geom/simplegeometry.js @@ -99,6 +99,14 @@ ol.geom.SimpleGeometry.prototype.getExtent = function(opt_extent) { }; +/** + * @return {ol.Coordinate} First coordinate. + */ +ol.geom.SimpleGeometry.prototype.getFirstCoordinate = function() { + return this.flatCoordinates.slice(0, this.stride); +}; + + /** * @return {Array.} Flat coordinates. */ diff --git a/test/spec/ol/geom/linestring.test.js b/test/spec/ol/geom/linestring.test.js index 49a8a8c465..b6a226080b 100644 --- a/test/spec/ol/geom/linestring.test.js +++ b/test/spec/ol/geom/linestring.test.js @@ -164,6 +164,14 @@ describe('ol.geom.LineString', function() { [[0, 0], [1.5, 1], [3, 3], [5, 1], [6, 3.5], [7, 5]]); }); + describe('#getFirstCoordinate', function() { + + it('returns the expected result', function() { + expect(lineString.getFirstCoordinate()).to.eql([0, 0]); + }); + + }); + describe('#getFlatMidpoint', function() { it('returns the expected result', function() { From a1e8ff0a8f6a58c3722a4297177027be1d1ad499 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 28 Feb 2014 15:36:18 +0100 Subject: [PATCH 2/2] Add ol.geom.SimpleGeometry#getLastCoordinate --- src/ol/geom/simplegeometry.exports | 1 + src/ol/geom/simplegeometry.js | 8 ++++++++ test/spec/ol/geom/linestring.test.js | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/src/ol/geom/simplegeometry.exports b/src/ol/geom/simplegeometry.exports index dfdcaba588..9ba0b04b69 100644 --- a/src/ol/geom/simplegeometry.exports +++ b/src/ol/geom/simplegeometry.exports @@ -1,6 +1,7 @@ @exportSymbol ol.geom.SimpleGeometry @exportProperty ol.geom.SimpleGeometry.prototype.getExtent @exportProperty ol.geom.SimpleGeometry.prototype.getFirstCoordinate +@exportProperty ol.geom.SimpleGeometry.prototype.getLastCoordinate @exportProperty ol.geom.SimpleGeometry.prototype.getLayout @exportProperty ol.geom.SimpleGeometry.prototype.getSimplifiedGeometry @exportProperty ol.geom.SimpleGeometry.prototype.transform diff --git a/src/ol/geom/simplegeometry.js b/src/ol/geom/simplegeometry.js index 0f0d5aa47c..879a84f2e9 100644 --- a/src/ol/geom/simplegeometry.js +++ b/src/ol/geom/simplegeometry.js @@ -115,6 +115,14 @@ ol.geom.SimpleGeometry.prototype.getFlatCoordinates = function() { }; +/** + * @return {ol.Coordinate} Last point. + */ +ol.geom.SimpleGeometry.prototype.getLastCoordinate = function() { + return this.flatCoordinates.slice(this.flatCoordinates.length - this.stride); +}; + + /** * @return {ol.geom.GeometryLayout} Layout. * @todo stability experimental diff --git a/test/spec/ol/geom/linestring.test.js b/test/spec/ol/geom/linestring.test.js index b6a226080b..0cf269c399 100644 --- a/test/spec/ol/geom/linestring.test.js +++ b/test/spec/ol/geom/linestring.test.js @@ -184,6 +184,14 @@ describe('ol.geom.LineString', function() { }); + describe('#getLastCoordinate', function() { + + it('returns the expected result', function() { + expect(lineString.getLastCoordinate()).to.eql([7, 5]); + }); + + }); + describe('#getSimplifiedGeometry', function() { it('returns the expectedResult', function() {