如何判断坐标是否在另外两个坐标之间
How to tell if Coordinate is in between two other coordinates
我有一个 CLLocation
数组,代表用户计算的路线。
用户可以选择将某些 POI 添加到该路线,我需要知道如何判断 POI 在路线上的确切位置。
接下来是我想到的:
我会遍历我的路线数组,获取一对 CLLocations 并计算从我的 POI 到这两个坐标的距离并保存该值。
我可以对路线上的所有坐标对都这样做,然后查看哪个距离最小,这就是我知道我的坐标是否在其他两个坐标之间的方式。
除了这个还有其他方法吗?
这是实现此目标的方法:
- (CLLocation*)closestLocationToLocation:(CLLocation*)currLocation {
CLLocationDistance minDistance;
CLLocation *closestLocation = nil;
for (CLLocation *location in arrayOfLocations) {
CLLocationDistance distance = [location distanceFromLocation:currLocation];
if (distance <= minDistance || closestLocation == nil) {
minDistance = distance;
closestLocation = location;
}
}
return closestLocation;
}
我有一个 CLLocation
数组,代表用户计算的路线。
用户可以选择将某些 POI 添加到该路线,我需要知道如何判断 POI 在路线上的确切位置。
接下来是我想到的:
我会遍历我的路线数组,获取一对 CLLocations 并计算从我的 POI 到这两个坐标的距离并保存该值。 我可以对路线上的所有坐标对都这样做,然后查看哪个距离最小,这就是我知道我的坐标是否在其他两个坐标之间的方式。
除了这个还有其他方法吗?
这是实现此目标的方法:
- (CLLocation*)closestLocationToLocation:(CLLocation*)currLocation {
CLLocationDistance minDistance;
CLLocation *closestLocation = nil;
for (CLLocation *location in arrayOfLocations) {
CLLocationDistance distance = [location distanceFromLocation:currLocation];
if (distance <= minDistance || closestLocation == nil) {
minDistance = distance;
closestLocation = location;
}
}
return closestLocation;
}