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() {