From 0f884b5d0396312b4545cad1b7073262659bcefe Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 28 Feb 2014 16:10:01 +0100 Subject: [PATCH 1/2] Add ol.geom.Polygon#getInteriorPoint --- src/ol/geom/polygon.exports | 1 + src/ol/geom/polygon.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/ol/geom/polygon.exports b/src/ol/geom/polygon.exports index d950a3ae05..7500491823 100644 --- a/src/ol/geom/polygon.exports +++ b/src/ol/geom/polygon.exports @@ -2,6 +2,7 @@ @exportProperty ol.geom.Polygon.prototype.clone @exportProperty ol.geom.Polygon.prototype.getArea @exportProperty ol.geom.Polygon.prototype.getCoordinates +@exportProperty ol.geom.Polygon.prototype.getInteriorPoint @exportProperty ol.geom.Polygon.prototype.getLinearRings @exportProperty ol.geom.Polygon.prototype.getType @exportProperty ol.geom.Polygon.prototype.setCoordinates diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 02431cb60e..667a121e43 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -3,6 +3,7 @@ goog.provide('ol.geom.Polygon'); goog.require('ol.extent'); goog.require('ol.geom.GeometryType'); goog.require('ol.geom.LinearRing'); +goog.require('ol.geom.Point'); goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); @@ -152,6 +153,14 @@ ol.geom.Polygon.prototype.getFlatInteriorPoint = function() { }; +/** + * @return {ol.geom.Point} Interior point. + */ +ol.geom.Polygon.prototype.getInteriorPoint = function() { + return new ol.geom.Point(this.getFlatInteriorPoint()); +}; + + /** * @return {Array.} Linear rings. * @todo stability experimental From de46a5a053772e361bd86d5c8441a27306cd4281 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 28 Feb 2014 16:10:24 +0100 Subject: [PATCH 2/2] Add ol.geom.MultiPolygon#getInteriorPoints --- src/ol/geom/multipolygon.exports | 1 + src/ol/geom/multipolygon.js | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/ol/geom/multipolygon.exports b/src/ol/geom/multipolygon.exports index 3bc1d385c7..07d0d094b8 100644 --- a/src/ol/geom/multipolygon.exports +++ b/src/ol/geom/multipolygon.exports @@ -2,6 +2,7 @@ @exportProperty ol.geom.MultiPolygon.prototype.clone @exportProperty ol.geom.MultiPolygon.prototype.getArea @exportProperty ol.geom.MultiPolygon.prototype.getCoordinates +@exportProperty ol.geom.MultiPolygon.prototype.getInteriorPoints @exportProperty ol.geom.MultiPolygon.prototype.getPolygons @exportProperty ol.geom.MultiPolygon.prototype.getType @exportProperty ol.geom.MultiPolygon.prototype.setCoordinates diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index b2be17ca30..4b8db45894 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -4,6 +4,7 @@ goog.require('goog.array'); goog.require('goog.asserts'); goog.require('ol.extent'); goog.require('ol.geom.GeometryType'); +goog.require('ol.geom.MultiPoint'); goog.require('ol.geom.Polygon'); goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); @@ -155,6 +156,17 @@ ol.geom.MultiPolygon.prototype.getFlatInteriorPoints = function() { }; +/** + * @return {ol.geom.MultiPoint} Interior points. + */ +ol.geom.MultiPolygon.prototype.getInteriorPoints = function() { + var interiorPoints = new ol.geom.MultiPoint(null); + interiorPoints.setFlatCoordinates(ol.geom.GeometryLayout.XY, + this.getFlatInteriorPoints().slice()); + return interiorPoints; +}; + + /** * @return {Array.} Oriented flat coordinates. */