Я смею сказать, что @Kongress - лучший ответ здесь, но я просто собираюсь засунуть этот вопрос в кольцо, так как сама концепция - та, с которой я имел дело раньше.
Я не могу рассказать вам, как создать его в target-c, но для нашего обратного поиска по широте и долготе я построил K-DTree из значений лота по лату в нашей базе данных (> 250 000) и это дает нам поиск менее 100 наносекунд на настольном оборудовании. На iphone это все еще, вероятно, будет довольно быстро - память может быть проблемой, хотя вам действительно нужно иметь возможность кэшировать экземпляр в памяти, чтобы быть действительно полезным; его сборка занимает немного времени (наша сборка занимает около 1,5 секунд).
Просто идея.