2012-08-25 2 views
2

Possible en double:
Query to get records based on Radius in SQLite?iOS SQLite pas une telle fonction: erreur ACOS

J'utilise SQLite pour sauver la latitude, la longitude et le chemin vidéo dans mon application. en passant la latitude et la longitude actuelles en tant que paramètre dans la requête. J'ai besoin de trier les chemins vidéo basés
sur la proximité. J'utilise la requête suivante pour y parvenir SELECT videopath, (3959 * ACOS (COS (RADIANS (12.9833)) * COS (RADIANS (lat)) * COS (RADIANS (lng) - RADIANS (77.5833)) + SIN (RADIANS (12.9833)) * SIN (RADIANS (lat)))) AS distance FROM VideoPathsTable ORDER BY distance ASC LIMIT 0, 30. En sql cette requête s'exécute bien, mais en sqlite je reçois l'erreur suivante pas une telle fonction: ACOS existe-t-il un autre moyen de faire cela. S'il vous plaît aidez-moi à résoudre ce issue.I je utilise libsqlite3.0.dylib

+0

Il y a méthode qui fonctionne sur iOS, voir http://daveaddey.com/?p=71 pas besoin d'ajouter de nouvelles colonnes. Je l'écrirais comme une réponse, mais les éditeurs ont incorrectement marqué cette question comme un doublon (note aux éditeurs: la question que vous référez à http://stackoverflow.com/questions/3126830/query-to-get-records-based -on-radius-in-sqlite est spécifique à Android "** Je ne peux pas exécuter de fonctions personnalisées avec elle comme sur Android **", veuillez redéfinir cette question - nous pouvons exécuter des fonctions personnalisées sur iOS). –

+0

Je pense que votre question est répondu par stephencelis ici: http://stackoverflow.com/questions/30825513/creating-custom-sqlite-functions-in-swift-alone –

Répondre

0

On dirait que ce ne fait pas partie du SQLite standart: Query to get records based on Radius in SQLite?

Vérifiez sur le SO avant :-)

+0

En fait, cette question fait référence à Android, sur iOS il y a plus options disponibles et vous n'avez pas à créer de colonnes supplémentaires. Vous pouvez ajouter une fonction personnalisée comme si http://daveaddey.com/?p=71 c'est vraiment facile à faire, et fonctionne avec votre structure existante. –

Questions connexes