У меня есть объекты с данными о местоположении, хранящиеся в Core Data, я хотел бы иметь возможность извлекать и отображать только ближайшую точку к текущему местоположению. Я знаю, что есть формулы, которые будут вычислять расстояние от текущего lat/long до сохраненного lat/long, но мне интересно, как наилучшим образом выполнить это для набора из 1000+ точек, хранящихся в Core Data. Я знаю, что могу просто вернуть точки из Core Data в массив, а затем выполнить цикл, который ищет минимальное значение для расстояния между точками, но я бы предположил, что существует более эффективный метод, возможно, используя Core Data каким-то образом.Каков эффективный способ вычисления ближайшей точки?
Любое понимание будет оценено по достоинству.
EDIT: Я не знаю, как я пропустил это на моем первоначальном поиске, но this SO question предлагает только переборе массива объектов основных данных, но ограничивает размер массива с кадрирования на основе текущего местоположения. Это лучшее, что я могу сделать?
Использование ограничивающей рамки звучит вполне разумно, должно быть быстро, чтобы получить первый набор точек, и если угадание хорошее, не слишком много, чтобы пройти через. Трюк догадывается о правильном размере окна, я думаю, вы можете начать с маленького и увеличить его высоту и ширину до определенного момента, пока не найдете несколько точек, после чего вы начнете выполнять итерацию. – Douglas
Я думаю, что [это] (http://en.wikipedia.org/wiki/Voronoi_diagrams) может вам помочь. – user272879