Tengo una base de datos incrustada en mi aplicación que tiene toda la latitud y longitud de algunos puntos interesados y necesito saber mi distancia desde estos puntos (obtener mi posición usando GPS). Mi problema es: acabo de descubrir que SQLite no puede calcular la distancia utilizando la consulta que tengo porque no calcula las funciones de trigonometría (SIN, COS ...). Estaba tratando de evitar el cálculo de estas distancias programáticamente utilizando esta consulta:IPhone - Distancia de SQLite por latitud y longitud
NSLog(@"SELECT ((ACOS(SIN(%@ * PI()/180) * SIN(lat * PI()/180) + COS(%@ * PI()/180) * COS(lat * PI()/180) * COS((%@ – lon) * PI()/180)) * 180/PI()) * 60 * 1.1515) AS `distance` FROM `members` HAVING `distance`<=’1000′ ORDER BY `distance`", Latitude,Latitude, Longitude);
¿Alguien tiene una solución?
¡Recuerdos!
Grande. ¡Muchas gracias! – Claudio
El vinculado a la respuesta es realmente muy bueno. Definición de una función c llamada desde sqlite para calcular la distancia. Es rápido y funciona. Lo único que podría hacer es refinar su búsqueda usando una declaración BETWEEN. Estoy usando esto: SELECCIONAR * FROM Ubicaciones DONDE lat ENTRE% f AND% f AND lon ENTRE% fY% f ORDER BY distancia (lat, lon,% f,% f) LIMIT 25 –
@KennyWinker Proporcione% f value –