Mam bazę danych rdzenia o właściwościach szerokości i długości geograficznej. Czy istnieje sposób, aby użyć metody lokalizacji lokalizacji getDistanceFrom:
, aby znaleźć pięć najbliższych lokalizacji do CLLocation
uzyskanych z GPS? Czy muszę ładować wszystkie obiekty za pomocą Core Data i analizować je, używając na każdym z nich getDistanceFrom:
lub czy jest łatwiejszy sposób?Dane podstawowe i lokalizacja rdzenia
Odpowiedz
trzeba będzie wykonać iterację je jeden po drugim; o ile mi wiadomo, nie ma innego sposobu, aby to zrobić.
Możesz jednak zwiększyć wydajność, używając ramki ograniczającej, gdy otrzymasz elementy z podstawowych danych - zmniejszy to liczbę zwracanych obiektów.
tj Coś
float latMax = wantedLat + 1;
float latMin = wantedLat - 1;
float lngMax = wantedLng + 1;
float lngMin = wantedLng - 1;
NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"lat > %f and lat < %f and lng > %f and lng < %f",
latMin, latMax, lngMin, lngMax];
Choć, w zależności od tego ile danych masz i jak dokładnie to rozstawione, będziesz chciał użyć innego numeru niż 1!
Sam
PS Również mam nie brać pod uwagę fakt, że geograficznej tajemnicy!
Nie można użyć CoreData do znalezienia najbliższego obiektu, ale można zawęzić zapytanie za pomocą obwiedni. Aby znaleźć najbliższy obiekt, możesz użyć prostej różnicy długości/długości, która jest znacznie większa niż obliczenie rzeczywistych odległości.
Miałem podobny pytanie:
Dzięki za link. –
Poniższy przykład jest niemal tym, czego szukasz. Używa funkcji SQLite do obliczenia odległości w klauzuli ORDER BY (formuła Haversine). Problem polega na tym, że ten przykład nie korzysta bezpośrednio z Core-Data, ale bezpośrednio z interfejsu API SQLite.
- 1. NSDictionary i dane podstawowe
- 2. Dane podstawowe i wielowątkowość
- 3. Podstawowe uwierzytelnianie w ASP.NET Rdzenia
- 4. Dane podstawowe i cykle zatrzymania
- 5. Niestandardowe dane podstawowe SectionNameKeyPath
- 6. Dane podstawowe iOS - Relacje
- 7. Wydajność i dane podstawowe rozwiązania RestKit
- 8. iOS: Podstawowe dane i przestrzeń dyskowa
- 9. NSUndoManager, dane podstawowe i selektywne cofanie/ponawianie
- 10. Sterownik paska narzędzi iPhone i podstawowe dane
- 11. Zamówione zestawy i podstawowe dane (NSOrderedSet)
- 12. ios - DANE PODSTAWOWE aktualizowanie rekordów
- 13. Dane podstawowe: 3 sprzężenia stołowe?
- 14. Różnica między angular2/rdzenia i @ kątowej/rdzenia
- 15. Podstawowe dane NSFetchRequest z grupowaniem
- 16. Lokalizacja i JQuery/JavaScript
- 17. Aplikacja zakończy powiadomienie i zapisuje wersję roboczą (dane podstawowe)
- 18. Dane podstawowe - migracje lekkie i wielordzeniowe pliki modeli danych (xcdatamodel)
- 19. "Eksportuj" podstawowe dane za pomocą Magical Record
- 20. Dostarczyć dane podstawowe dla aplikacji danych podstawowych?
- 21. Dane podstawowe - rodzaj dziesiętny dla waluty
- 22. Tworzenie kopii zapasowej .sqlite (dane podstawowe)
- 23. Podstawowe dane - proste pobieranie typu JOIN
- 24. Dane podstawowe: UITableView z wieloma NSFetchedResultControllers
- 25. Dane podstawowe: Kwerenda identyfikatory obiektu w predykacie?
- 26. jak zaktualizować wprowadzone dane podstawowe wartości
- 27. Dane podstawowe NSFetchRequest setResultType: NSDictionaryResultType nie działa
- 28. iPhone - Dodaj podstawowe dane do istniejącego projektu?
- 29. Dane podstawowe zwracające NSArrays zamiast NSStrings
- 30. Dane podstawowe: Nie można załadować modelu
Wygląda na użyteczny kod, dzięki. –
Dzięki za to - użyłem czegoś podobnego w mojej aplikacji. Ale wydaje mi się, że oba zestawy < and > są teraz w niewłaściwy sposób! – iPhoneDollaraire
Masz rację - ups! – deanWombourne