Я часто использую метод distanceFromLocation
для объектов CLLocation
, чтобы добраться до других мест. Перечисляя через массив CLLocations, я затем сравниваю каждое с моим ссылочным местоположением с помощью этого метода.Как работает метод distanceFromLocation?
Мне любопытно узнать последствия обработки/памяти для использования distanceFromLocation
, особенно для большого количества объектов CLLocation
. Как работает этот метод - подключается ли он к серверу для получения данных или вычисляет расстояние на основе некоторой математической формулы, такой как Haversine Formula?
Есть ли более эффективный метод для сравнения расстояний между 1 опорным местоположением и массивом объектов CLLocation?
Следует отметить, что формула Хаверсина и все формулы, основанные на Меркаторе, которые предполагают Землю, являются сфероидом (который используется картами Google, Apple и Bing) являются приблизительными для расстояний и не должны использоваться для критических вычислений длины ГИС, где вы необходимо точное измерение земли. Достаточно, чтобы 99% приложений использовали Haversine и полагались на встроенные вычисления, однако ... это +/- 1 м для большинства приложений с погрешностью 0,1%, что на коротких расстояниях и вдали от полюсов. Если вы хотите получить точную точность, вам нужно рассчитать расстояния в проекциях UTM или Lambert. – JasonD