如何判断坐标是否在另外两个坐标之间

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;
}