,..
This commit is contained in:
parent
96b26b8c37
commit
d7f9c251a6
@ -26,6 +26,7 @@ import java.math.RoundingMode
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.Executors
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.math.cos
|
||||
|
||||
class LocationGetter(context: Context, workerParams: WorkerParameters) : BaseGetter(context, workerParams) {
|
||||
companion object {
|
||||
@ -114,4 +115,27 @@ class LocationGetter(context: Context, workerParams: WorkerParameters) : BaseGet
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
val EARTH_RADIUS_METERS = 6371000
|
||||
val LATITUDE_DEGREE_PER_METER: Double = 1.0 / (2 * Math.PI * EARTH_RADIUS_METERS / 360)
|
||||
|
||||
fun latitudeRange(latitude: Double, radiusInMeters: Int): DoubleArray {
|
||||
val degreeRange = radiusInMeters * LATITUDE_DEGREE_PER_METER
|
||||
|
||||
val minLatitude = latitude - degreeRange
|
||||
val maxLatitude = latitude + degreeRange
|
||||
|
||||
return doubleArrayOf(minLatitude, maxLatitude)
|
||||
}
|
||||
|
||||
fun longitudeRange(latitude: Double, longitude: Double, radiusInMeters: Int): DoubleArray {
|
||||
val longitudeDegreePerMeter: Double = 360 / (2 * Math.PI * EARTH_RADIUS_METERS * cos(Math.toRadians(latitude)))
|
||||
val degreeRange = longitudeDegreePerMeter * radiusInMeters
|
||||
|
||||
val minLongitude = longitude - degreeRange
|
||||
val maxLongitude = longitude + degreeRange
|
||||
|
||||
return doubleArrayOf(minLongitude, maxLongitude)
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user