Это мой первый вопрос, который вы задаете здесь, но я нашел много помощи от вопросов других людей.Заказ объектов CLLocation в -distanceFromLocation:
Мой вопрос относится к функции -distanceFromLocation:
в CLLocation
. Я предположил, что найти расстояние между точкой А и точкой В будет такой же, как между точкой В и точкой А, но я обнаружил, что это не так. Я испытал это в очень простом случае:
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 метров могут это изменить.
Вопрос в том, какое из этих значений, если оно есть, является правильным? Также, если важно, какое место я тестирую, нужно ли всегда тестировать одно и то же местоположение (например, пользователь для адресата и аннотация для адресата, а не адресата для пользователя и аннотации к месту назначения)?
Извините, что образец немного не соответствует контексту, так как мой проект довольно большой, и это иллюстрирует мою проблему. Любая помощь была бы оценена, так как это вызвало у меня довольно путаницу и разочарование.