Ho un database di dati di base con proprietà di latitudine e longitudine. C'è un modo per utilizzare il metodo getDistanceFrom:
di Core Location per trovare le cinque posizioni più vicine a un CLLocation
ottenuto dal GPS? Devo caricare tutti gli oggetti usando Core Data e analizzarli, usando getDistanceFrom:
su ognuno di essi o esiste un modo più semplice?Core Data and Core Location
risposta
si dovrà scorrere uno per uno; per quanto ne so non c'è altro modo per farlo.
Tuttavia, è possibile renderlo più efficiente utilizzando un riquadro di delimitazione quando si ottengono gli elementi dai dati principali: ciò ridurrà il numero di oggetti che verranno restituiti.
cioè Qualcosa di simile
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];
Anche se, a seconda della quantità di dati che hai e quanto strettamente è distanziati, si vuole utilizzare un numero diverso da 1!
Sam
PS Inoltre, non ho preso in considerazione il fatto che avvolge longitudine!
Non è possibile utilizzare CoreData per trovare l'oggetto più vicino, ma potrebbe essere necessario restringere la query utilizzando un riquadro di delimitazione. Per trovare l'oggetto più vicino, si potrebbe preferire utilizzare semplicemente la differenza in lat/long che è considerevolmente più veloce del calcolo delle distanze effettive.
avevo una domanda simile:
Grazie per il collegamento. –
Il seguente esempio è quasi quello che stai cercando. Utilizza una funzione SQLite per calcolare la distanza nella clausola ORDER BY (formula di Haversine). Il problema è che questo esempio non usa Core-Data, ma direttamente l'API SQLite.
- 1. Core Data syncing
- 2. Core Data e NSOperation
- 3. Core Data e multithreading
- 4. Core Data vs NSFileManager
- 5. UITableView Core Data riordino
- 6. Core Data sincronizzabili & com.apple.syncservices.Syncable
- 7. Core Data with json
- 8. Core-Data: Predicato per molte relazioni
- 9. Rubrica Rubrica in Core Data
- 10. Elimina oggetto in Core Data
- 11. Core Data Entity List Names
- 12. Core Data e impostazione BOOL
- 13. Per iniziare con Core Data
- 14. Core Data NSPredicate per la data
- 15. Come memorizzare CLLocation utilizzando Core Data (iPhone)?
- 16. Posizionamento indoor su iOS con Core Location - non accurato?
- 17. Come migliorare le prestazioni del Core Data?
- 18. Core-Data CoreDataGeneratedAccessors contro assegnazione semplice
- 19. Core Data sta salvando solo l'ultimo elemento
- 20. iPhone Core-Data: impossibile trovare un NSManagedObjectModel
- 21. Iphone Core Data: Data Valore predefinito come data corrente
- 22. Quante volte dovrei salvare in Core Data?
- 23. Core Data errore irrisolto su Save
- 24. Producer Consumer Issue with Core Data
- 25. Aggiunta di oggetti unici a Core Data
- 26. NSOperation VS GCD per Core-Data
- 27. Core Data: affermazione è ancora attivo
- 28. Quando utilizzare NSMainQueueConcurrencyType di Core Data?
- 29. Utilizzo di Core Data con watchOS 2.0
- 30. L''istruzione Core Data +' è ancora attiva '
Sembra codice utile, grazie. –
Grazie per questo - ho usato qualcosa di simile nella mia app. Ma mi sembra che entrambe le serie di < and > siano ora nel modo sbagliato! – iPhoneDollaraire
Hai ragione - oops! – deanWombourne