从用户位置查找数组中最近的经度和纬度 - Android Studio
Find closest longitude and latitude in array from user location - Android Studio
以下代码对我最近完成的 iOS 应用程序很有帮助:
var closestLocation: CLLocation?
var smallestDistance: CLLocationDistance?
for location in locations {
let distance = currentLocation.distanceFromLocation(location)
if smallestDistance == nil || distance < smallestDistance {
closestLocation = location
smallestDistance = distance
}
}
我的问题很简单:对于 Android Studio,这段代码在 Java 中看起来如何?
这是我在 Java 和 Android 工作室的第一个 运行,非常感谢任何帮助。
Location closestLocation = null;
float smallestDistance = -1;
for(Location location:mLocationsList){
float distance = currentLocation.distanceTo(location);
if(smallestDistance == -1 || distance < smallestDistance) {
closestLocation = location
smallestDistance = distance
}
}
其中 mLocationsList
是位置对象的可迭代集合并且 currentLocation
已经设置
看起来像这样(locations 需要是可迭代的并且必须设置 userLocation):
Location closest;
float smallestDistance = Float.MAX_VALUE;
for (Location l : locations) {
float dist = l.distanceTo(userLocation);
if (dist < smallestDistance) {
closest = l;
smallestDistance = dist;
}
}
您应该考虑使用位置 class。它用于存储纬度和经度的位置。它还具有用于计算点之间距离的预定义函数 - distanceBetween()
。
Location closestLocation;
int smallestDistance = -1;
假设位置是 ArrayList<Location>()
for(Location location : locations){
int distance = Location.distanceBetween(closestLocation.getLatitude(),
closestLocation.getLongitude(),
location.getLatitude(),
location.getLongitude());
if(smallestDistance == -1 || distance < smallestDistance){
closestLocation = location;
smallestDistance = distance;
}
}
以下代码对我最近完成的 iOS 应用程序很有帮助:
var closestLocation: CLLocation?
var smallestDistance: CLLocationDistance?
for location in locations {
let distance = currentLocation.distanceFromLocation(location)
if smallestDistance == nil || distance < smallestDistance {
closestLocation = location
smallestDistance = distance
}
}
我的问题很简单:对于 Android Studio,这段代码在 Java 中看起来如何?
这是我在 Java 和 Android 工作室的第一个 运行,非常感谢任何帮助。
Location closestLocation = null;
float smallestDistance = -1;
for(Location location:mLocationsList){
float distance = currentLocation.distanceTo(location);
if(smallestDistance == -1 || distance < smallestDistance) {
closestLocation = location
smallestDistance = distance
}
}
其中 mLocationsList
是位置对象的可迭代集合并且 currentLocation
已经设置
看起来像这样(locations 需要是可迭代的并且必须设置 userLocation):
Location closest;
float smallestDistance = Float.MAX_VALUE;
for (Location l : locations) {
float dist = l.distanceTo(userLocation);
if (dist < smallestDistance) {
closest = l;
smallestDistance = dist;
}
}
您应该考虑使用位置 class。它用于存储纬度和经度的位置。它还具有用于计算点之间距离的预定义函数 - distanceBetween()
。
Location closestLocation;
int smallestDistance = -1;
假设位置是 ArrayList<Location>()
for(Location location : locations){
int distance = Location.distanceBetween(closestLocation.getLatitude(),
closestLocation.getLongitude(),
location.getLatitude(),
location.getLongitude());
if(smallestDistance == -1 || distance < smallestDistance){
closestLocation = location;
smallestDistance = distance;
}
}