Android 比较两个位置的移动应用程序功能
Android Mobile App feature that compare two location
我最近正在学习 kotlin 和 android 编程
我想制作一个应用程序来比较和检测离我更近的两个事物中的哪一个,而比较的事物是,
例如,基于 google 地图位置的两个不同的麦当劳特许经营权,
我不知道我应该如何构建它,你们能帮我确定哪种技术适合我的学校项目吗?
谢谢:)
您可以获取两个点的位置,并使用此方法将每个点与您当前位置的距离进行比较
然后选择较小的那个
private fun calculationByDistance(location: Location, EndP: Location): Double {
val Radius = 6371 // radius of earth in Km
val lat1 = location.latitude
val lat2: Double = EndP.latitude
val lon1 = location.longitude
val lon2: Double = EndP.longitude
val dLat = Math.toRadians(lat2 - lat1)
val dLon = Math.toRadians(lon2 - lon1)
val a = (Math.sin(dLat / 2) * Math.sin(dLat / 2)
+ (Math.cos(Math.toRadians(lat1))
* Math.cos(Math.toRadians(lat2)) * Math.sin(dLon / 2)
* Math.sin(dLon / 2)))
val c = 2 * Math.asin(Math.sqrt(a))
val valueResult = Radius * c
val km = valueResult / 1
val newFormat = DecimalFormat("####")
val kmInDec = Integer.valueOf(newFormat.format(km))
val meter = valueResult % 1000
val meterInDec = Integer.valueOf(newFormat.format(meter))
Log.i("Radius Value", "" + valueResult + " KM " + kmInDec
+ " Meter " + meterInDec)
return Radius * c
}
您可以按照此文档获取当前位置
her
我最近正在学习 kotlin 和 android 编程 我想制作一个应用程序来比较和检测离我更近的两个事物中的哪一个,而比较的事物是, 例如,基于 google 地图位置的两个不同的麦当劳特许经营权, 我不知道我应该如何构建它,你们能帮我确定哪种技术适合我的学校项目吗? 谢谢:)
您可以获取两个点的位置,并使用此方法将每个点与您当前位置的距离进行比较
然后选择较小的那个
private fun calculationByDistance(location: Location, EndP: Location): Double {
val Radius = 6371 // radius of earth in Km
val lat1 = location.latitude
val lat2: Double = EndP.latitude
val lon1 = location.longitude
val lon2: Double = EndP.longitude
val dLat = Math.toRadians(lat2 - lat1)
val dLon = Math.toRadians(lon2 - lon1)
val a = (Math.sin(dLat / 2) * Math.sin(dLat / 2)
+ (Math.cos(Math.toRadians(lat1))
* Math.cos(Math.toRadians(lat2)) * Math.sin(dLon / 2)
* Math.sin(dLon / 2)))
val c = 2 * Math.asin(Math.sqrt(a))
val valueResult = Radius * c
val km = valueResult / 1
val newFormat = DecimalFormat("####")
val kmInDec = Integer.valueOf(newFormat.format(km))
val meter = valueResult % 1000
val meterInDec = Integer.valueOf(newFormat.format(meter))
Log.i("Radius Value", "" + valueResult + " KM " + kmInDec
+ " Meter " + meterInDec)
return Radius * c
}
您可以按照此文档获取当前位置 her