Итак, у меня возникла другая проблема, и я наткнулся на ответ на оба наших вопроса:
На iOS вы можете сделать следующее:
meters1 = [P1 distanceFromLocation:P2]
// meters1 is 97,717
meters2 = [P2 distanceFromLocation:P1]
// meters2 is 97,630
Я искал и искал, но не смог найти причину разницы. Поскольку они представляют собой одинаковые точки, они должны показывать одинаковое расстояние независимо от того, в какую сторону вы путешествуете. Я отправил его в Apple как ошибку, и они закрыли его как дубликат, но до сих пор не исправили. Я бы посоветовал всем, кто хочет, чтобы это было исправлено, также отправлять его как ошибку.
Между тем, среднее из двух значений на самом деле является правильным:
meters = (meters1 + meters2)/2
// meters (the average of the first two) is 97,673
Видимо, у Android нет этой проблемы.