Skip to content

Commit 9c33c10

Browse files
authored
Merge pull request #7 from chintan369/feature_resolve_issues
- Updated Bounds Implementation
2 parents e97eb47 + b7d198d commit 9c33c10

File tree

3 files changed

+17
-19
lines changed

3 files changed

+17
-19
lines changed

.idea/sonarIssues.xml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.ckdroid.geofirequery.model
2+
3+
class Bounds(val minimumMatch: Double, val maximumMatch: Double)

geofirequery/src/main/java/com/ckdroid/geofirequery/utils/BoundingBoxUtils.kt

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.ckdroid.geofirequery.utils
22

33
import com.ckdroid.geofirequery.model.BoundingBox
4+
import com.ckdroid.geofirequery.model.Bounds
45
import com.ckdroid.geofirequery.model.QueryLocation
56
import com.google.firebase.firestore.GeoPoint
67
import kotlin.math.*
@@ -60,34 +61,23 @@ class BoundingBoxUtils(private val distanceUnit: DistanceUnit) {
6061
return BoundingBox(minimumLatitude, minimumLongitude, maximumLatitude, maximumLongitude)
6162
}
6263

63-
fun getBoundingBoxForNew(queryLocation: QueryLocation, distance: Double): BoundingBox {
64+
fun getBoundingBoxForNew(queryLocation: QueryLocation, distance: Double): Bounds {
6465
val nearByLocationList: MutableList<GeoPoint> = mutableListOf()
6566

6667
(1..200).forEach { _ ->
6768
nearByLocationList.add(pointAtDistance(queryLocation, distance))
6869
}
6970

70-
if (nearByLocationList.isNotEmpty()) {
71-
val sortedBounds = nearByLocationList.sortedWith(compareBy({ it.latitude }, { it.longitude }))
71+
val boundList: MutableList<Double> = mutableListOf()
7272

73-
val minimumGeoPoint = sortedBounds.first()
74-
75-
val maximumGeoPoint = sortedBounds.last()
76-
77-
return BoundingBox(
78-
minimumGeoPoint.latitude,
79-
minimumGeoPoint.longitude,
80-
maximumGeoPoint.latitude,
81-
maximumGeoPoint.longitude
82-
)
73+
for (geoPoint in nearByLocationList) {
74+
val bound = (geoPoint.latitude + 90) * 180 + geoPoint.longitude
75+
boundList.add(bound)
8376
}
8477

85-
return BoundingBox(
86-
queryLocation.latitude,
87-
queryLocation.longitude,
88-
queryLocation.latitude,
89-
queryLocation.longitude
90-
)
78+
val sortedBoundList = boundList.sortedBy { it }
79+
80+
return Bounds(sortedBoundList.first(), sortedBoundList.last())
9181
}
9282

9383
private fun pointAtDistance(queryLocation: QueryLocation, distance: Double): GeoPoint {

0 commit comments

Comments
 (0)