diff --git a/src/ol/format/topojsonformat.js b/src/ol/format/topojsonformat.js
index cd63908115..a458d8f9d0 100644
--- a/src/ol/format/topojsonformat.js
+++ b/src/ol/format/topojsonformat.js
@@ -1,7 +1,6 @@
goog.provide('ol.format.TopoJSON');
goog.require('goog.asserts');
-goog.require('goog.object');
goog.require('ol.Feature');
goog.require('ol.format.Feature');
goog.require('ol.format.JSONFeature');
@@ -11,6 +10,7 @@ goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
+goog.require('ol.object');
goog.require('ol.proj');
@@ -299,7 +299,7 @@ ol.format.TopoJSON.prototype.readFeaturesFromObject = function(
}
/** @type {Array.
} */
var features = [];
- var topoJSONFeatures = goog.object.getValues(topoJSONTopology.objects);
+ var topoJSONFeatures = ol.object.getValues(topoJSONTopology.objects);
var i, ii;
var feature;
for (i = 0, ii = topoJSONFeatures.length; i < ii; ++i) {
diff --git a/src/ol/interaction/pointerinteraction.js b/src/ol/interaction/pointerinteraction.js
index ceeede2a59..9595649d19 100644
--- a/src/ol/interaction/pointerinteraction.js
+++ b/src/ol/interaction/pointerinteraction.js
@@ -1,12 +1,12 @@
goog.provide('ol.interaction.Pointer');
goog.require('goog.functions');
-goog.require('goog.object');
goog.require('ol');
goog.require('ol.MapBrowserEvent.EventType');
goog.require('ol.MapBrowserPointerEvent');
goog.require('ol.Pixel');
goog.require('ol.interaction.Interaction');
+goog.require('ol.object');
/**
@@ -133,7 +133,7 @@ ol.interaction.Pointer.prototype.updateTrackedPointers_ = function(mapBrowserEve
// update only when there was a pointerdown event for this pointer
this.trackedPointers_[event.pointerId] = event;
}
- this.targetPointers = goog.object.getValues(this.trackedPointers_);
+ this.targetPointers = ol.object.getValues(this.trackedPointers_);
}
};
diff --git a/src/ol/interaction/snapinteraction.js b/src/ol/interaction/snapinteraction.js
index eb8598ade6..ceb92583b1 100644
--- a/src/ol/interaction/snapinteraction.js
+++ b/src/ol/interaction/snapinteraction.js
@@ -2,9 +2,6 @@ goog.provide('ol.interaction.Snap');
goog.provide('ol.interaction.SnapProperty');
goog.require('goog.asserts');
-goog.require('ol.events');
-goog.require('ol.events.EventType');
-goog.require('goog.object');
goog.require('ol');
goog.require('ol.Collection');
goog.require('ol.CollectionEvent');
@@ -14,9 +11,12 @@ goog.require('ol.Feature');
goog.require('ol.Object');
goog.require('ol.Observable');
goog.require('ol.coordinate');
+goog.require('ol.events');
+goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.geom.Geometry');
goog.require('ol.interaction.Pointer');
+goog.require('ol.object');
goog.require('ol.source.Vector');
goog.require('ol.source.VectorEvent');
goog.require('ol.source.VectorEventType');
@@ -591,7 +591,7 @@ ol.interaction.Snap.handleEvent_ = function(evt) {
* @private
*/
ol.interaction.Snap.handleUpEvent_ = function(evt) {
- var featuresToUpdate = goog.object.getValues(this.pendingFeatures_);
+ var featuresToUpdate = ol.object.getValues(this.pendingFeatures_);
if (featuresToUpdate.length) {
featuresToUpdate.forEach(this.updateFeature_, this);
this.pendingFeatures_ = {};
diff --git a/src/ol/objectutil.js b/src/ol/objectutil.js
index abb3633eb3..8ada4e7996 100644
--- a/src/ol/objectutil.js
+++ b/src/ol/objectutil.js
@@ -41,6 +41,21 @@ ol.object.clear = function(object) {
};
+/**
+ * Get an array of property values from an object.
+ * @param {Object} object The object from which to get the values.
+ * @return {!Array} The property values.
+ * @template K,V
+ */
+ol.object.getValues = function(object) {
+ var values = [];
+ for (var property in object) {
+ values.push(object[property]);
+ }
+ return values;
+};
+
+
/**
* Determine if an object has any properties.
* @param {Object} object The object to check.
diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js
index 449e3ae4cc..1faaa14d2a 100644
--- a/src/ol/source/vectorsource.js
+++ b/src/ol/source/vectorsource.js
@@ -6,7 +6,6 @@ goog.provide('ol.source.VectorEvent');
goog.provide('ol.source.VectorEventType');
goog.require('goog.asserts');
-goog.require('goog.object');
goog.require('ol');
goog.require('ol.Collection');
goog.require('ol.CollectionEventType');
@@ -553,7 +552,7 @@ ol.source.Vector.prototype.getFeatures = function() {
features = this.featuresRtree_.getAll();
if (!ol.object.isEmpty(this.nullGeometryFeatures_)) {
ol.array.extend(
- features, goog.object.getValues(this.nullGeometryFeatures_));
+ features, ol.object.getValues(this.nullGeometryFeatures_));
}
}
goog.asserts.assert(features !== undefined,
diff --git a/test/spec/ol/objectutil.test.js b/test/spec/ol/objectutil.test.js
index 5435648b54..e3a91c0a6c 100644
--- a/test/spec/ol/objectutil.test.js
+++ b/test/spec/ol/objectutil.test.js
@@ -43,6 +43,15 @@ describe('ol.object.clear()', function() {
});
+describe('ol.object.getValues()', function() {
+
+ it('gets a list of property values from an object', function() {
+ expect(ol.object.getValues({foo: 'bar', num: 42}).sort()).to.eql([42, 'bar']);
+ expect(ol.object.getValues(null)).to.eql([]);
+ });
+
+});
+
describe('ol.object.isEmpty()', function() {
it('checks if an object has any properties', function() {