From 1f22c74f9c070e9a3db3804ab1d1cc1dba736cbf Mon Sep 17 00:00:00 2001 From: Cameron McOnie Date: Tue, 21 Apr 2020 12:19:48 +0200 Subject: [PATCH 1/2] Up geohash precision to level 6 Process json on global queue --- .../Core/Data Pool/Regions/GeoPosRegion.swift | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Sources/Core/Data Pool/Regions/GeoPosRegion.swift b/Sources/Core/Data Pool/Regions/GeoPosRegion.swift index ca994ae5..53724a14 100644 --- a/Sources/Core/Data Pool/Regions/GeoPosRegion.swift +++ b/Sources/Core/Data Pool/Regions/GeoPosRegion.swift @@ -94,13 +94,13 @@ class GeoPosRegion: BLOCKvRegion { self.pauseMessages() // convert region to geohash - let geohash = self.region.center.geohash(precision: .seventySixMeters) + let geohash = self.region.center.geohash(precision: .sixHundredTenMeters) + print("geohash: \(geohash)") + // fetch vatoms let endpoint: Endpoint = API.Generic.geoDiscover(geohash: geohash, filter: "vatoms") - - // execute request - return BLOCKv.client.requestJSON(endpoint).map { json -> [String]? in - + return BLOCKv.client.requestJSON(endpoint).map(on: .global(qos: .userInitiated)) { json -> [DataObject] in + // parse items guard let json = json as? [String: Any], @@ -108,16 +108,17 @@ class GeoPosRegion: BLOCKvRegion { let items = self.parseDataObject(from: payload) else { throw NSError.init("Unable to load") //FIXME: Create a better error } + return items + + }.map { items -> [String] in // add all objects self.add(objects: items) // return IDs return items.map { $0.id } - + }.ensure { - // resume websocket events self.resumeMessages() - } } @@ -152,6 +153,9 @@ class GeoPosRegion: BLOCKvRegion { /// Sends the monitor command to the backend. This allows this client to receive preemptive brain updates over the /// Web socket. func sendRegionCommand() { + + //TODO: This region should match the geohash, not the visible region. + // write region command BLOCKv.socket.writeRegionCommand(region.toDictionary()) } From 21b29a4b0403e7c0eb6ee19803b17b44516c3231 Mon Sep 17 00:00:00 2001 From: Cameron McOnie Date: Tue, 21 Apr 2020 12:21:16 +0200 Subject: [PATCH 2/2] Improve print --- Sources/Core/Data Pool/Regions/GeoPosRegion.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Core/Data Pool/Regions/GeoPosRegion.swift b/Sources/Core/Data Pool/Regions/GeoPosRegion.swift index 53724a14..0fb358d3 100644 --- a/Sources/Core/Data Pool/Regions/GeoPosRegion.swift +++ b/Sources/Core/Data Pool/Regions/GeoPosRegion.swift @@ -95,7 +95,7 @@ class GeoPosRegion: BLOCKvRegion { // convert region to geohash let geohash = self.region.center.geohash(precision: .sixHundredTenMeters) - print("geohash: \(geohash)") + print("[GeoPosRegion] Fetching for geohash: \(geohash)") // fetch vatoms let endpoint: Endpoint = API.Generic.geoDiscover(geohash: geohash, filter: "vatoms")