Я впервые публикую здесь вопрос, но я нашел много помощи от вопросов других людей.
Мой вопрос относится к функции -distanceFromLocation:
в CLLocation
. Я предполагал, что нахождение расстояния между точкой A и точкой B будет таким же, как и между точкой B и точкой A, но я обнаружил, что это не так. Я проверил это в очень простом случае:
CLLocation *test1 = [[CLLocation alloc] initWithLatitude:37.529530 longitude:-122.259232];
CLLocation *test2 = [[CLLocation alloc] initWithLatitude:47.900002 longitude:-103.495102];
NSLog(@"%f vs %f",[test2 distanceFromLocation:test1],[test1 distanceFromLocation:test2]);
[test1 release];
[test2 release];
Выходные данные были 1907269,942754 против 1908105,959114, разница почти 900 метров.
Хотя 900 метров может быть небольшим процентом, я пытаюсь определить, ближе ли пользователь к чему-либо, чем аннотация, и 900 метров может изменить это.
У меня вопрос: какое из этих значений, если оно есть, является правильным? Также, если какое местоположение я проверяю, важно, нужно ли мне всегда проверять одно и то же местоположение (например, от пользователя к месту назначения и аннотации к месту назначения, а не от места назначения для пользователя и аннотации к месту назначения)?
Извините, что образец немного вне контекста, так как мой проект довольно большой, и это иллюстрирует мою проблему. Буду признателен за любую помощь, так как это вызвало у меня некоторое замешательство и разочарование.