From 590cf0bf51be93e8ff46c223a23456beb901bb4f Mon Sep 17 00:00:00 2001 From: Mike Reich Date: Sat, 17 Feb 2018 16:28:12 -0800 Subject: [PATCH 1/3] Added findNear method, expanded internal _geoFind to accept opts --- nxus-storage-4.0.1.tgz | Bin 0 -> 12234 bytes package-lock.json | 8928 ++++++++++++++++++++++++++++++++++++++++ package.json | 1 + src/GeoModel.js | 26 +- 4 files changed, 8952 insertions(+), 3 deletions(-) create mode 100644 nxus-storage-4.0.1.tgz create mode 100644 package-lock.json diff --git a/nxus-storage-4.0.1.tgz b/nxus-storage-4.0.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7e8e048070d2db00968283e54e5ffaa7ca394a3c GIT binary patch literal 12234 zcmV;*FE!8~iwFP!000006YYIzciTp`V1LH1sMtA8P)$OMW&5=hCsAT2?RVO7#!g

(oFmSz(hEi#L*zcnmM-}hY>Z3qy9EOVOTjl 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 YH%_e0XY<*7{(ztV4 { this.native((err, collection) => { if(err) { reject(err); return } From 369e6bc8916f0e174cd68f08bb2ffcf8da7cae63 Mon Sep 17 00:00:00 2001 From: Mike Reich Date: Sat, 17 Feb 2018 16:28:41 -0800 Subject: [PATCH 2/3] Added default value for _geoFind opts --- src/GeoModel.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/GeoModel.js b/src/GeoModel.js index c7e31ae..5c3556d 100644 --- a/src/GeoModel.js +++ b/src/GeoModel.js @@ -310,7 +310,6 @@ const GeoModel = BaseModel.extend( findNear(coordinates, radius) { let centroid = this._getCenterOfMass(coordinates) - console.log(centroid) if(centroid) return this._geoFind('$near', centroid, {'$maxDistance': radius}) else @@ -327,7 +326,7 @@ const GeoModel = BaseModel.extend( return geo }, - _geoFind (op, coordinates, opts) { + _geoFind (op, coordinates, opts = {}) { let geoQuery = { [this.geometryFeatureField]: { [op]: {$geometry: coordinates, ...opts} } } return new Promise((resolve, reject) => { this.native((err, collection) => { From 8d55001ccafd817f9d6576a01ad49b43c6e7c3ba Mon Sep 17 00:00:00 2001 From: Mike Reich Date: Sat, 17 Feb 2018 16:44:48 -0800 Subject: [PATCH 3/3] Added tests --- src/GeoModel.js | 2 +- src/test/GeoModel.js | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/GeoModel.js b/src/GeoModel.js index 5c3556d..7a90bd8 100644 --- a/src/GeoModel.js +++ b/src/GeoModel.js @@ -309,7 +309,7 @@ const GeoModel = BaseModel.extend( }, findNear(coordinates, radius) { - let centroid = this._getCenterOfMass(coordinates) + let centroid = this.getCenterOfMass(coordinates) if(centroid) return this._geoFind('$near', centroid, {'$maxDistance': radius}) else diff --git a/src/test/GeoModel.js b/src/test/GeoModel.js index 4bb8903..e5788cd 100644 --- a/src/test/GeoModel.js +++ b/src/test/GeoModel.js @@ -276,6 +276,10 @@ describe("Storage", () => { [ 4, 5 ], null ] + const nearMaps = [ + [0, 1] + ] + beforeEach(() => { geo = storage.getModel('geo') return Promise.mapSeries(records, (record) => { @@ -323,6 +327,25 @@ describe("Storage", () => { }) }) + it("findNear() should find nearby records", () => { + return Promise.each([objs[0]], (obj, idx) => { + let coordinates = geo.getGeometry(obj, 'Polygon'), + rsltMap = nearMaps[idx] + if (!rsltMap) + expect(coordinates).to.not.exist + else { + return geo.findNear(coordinates, 100000).then((query) => { + return query().then((rslts) => { + expect(rslts).to.be.instanceof(Array) + rslts.should.have.property('length', rsltMap.length) + for (let i = 0; i < rsltMap.length; i += 1) + rslts[i].should.deep.equal(objs[rsltMap[i]]) + }) + }) + } + }) + }) + }) describe("Model Geo class findWithin() method with .where() clause", () => {