在我的iPhone应用程序,我有一个美国纬度和经度的sqlite表(All weather stations of USA)。什么是sqlite查询来检查给定的纬度和经度是在一组纬度/经度在sqlite?我的意思是我把纽约的纬度/经度设置为(42.75,73.80),(37,-122),但是我在纽约附近搜索一个经纬度,就像(42.10,73.20)检查给定的经度和纬度是否在一组纬度和经度在sqlite
如何找到这个(42.10,73.20)是否在纽约附近? SQLite中(Eg.ACOS)
- 解答mtoepper
自定义功能
//Include this code in your project
static void ACOSFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
{
assert(argc == 1);
if (sqlite3_value_type(argv[0]) == SQLITE_NULL) {
sqlite3_result_null(context);
return;
}
double input = sqlite3_value_double(argv[0]);
sqlite3_result_double(context, acos(input) );
}
和创建数据库连接后添加此。
sqlite3_create_function(db.sqliteHandle, "ACOS", 1, SQLITE_UTF8, NULL, &ACOSFunc, NULL, NULL);
谢谢pragnesh。我已经做了 – 2010-07-02 07:35:26
SELECT *,(3959 * ACOS(COS(RADIANS(37))* COS(RADIANS(纬度))* COS(RADIANS(经度) - RADIANS(-122))+ SIN(RADIANS(37)) * SIN(RADIANS(Latitude))))AS距离FROM邮编按距离排序<25 LIMIT 0,20 – 2010-07-02 07:36:08
必须完成函数定义函数,如ACOS,COS,RADIANS,SIN,因为它们在sqlite中不可用。奇妙的SQLite查询 – 2010-07-02 07:37:35