在我的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