sqlite,地理坐标索引?

时间:2013-07-24 20:59:52

标签: java sqlite geospatial

我有一个包含地理数据的SQLite数据库。我的表定义如下:

     CREATE TABLE GEO_OBJECTS (ID VARCHAR(30) PRIMARY KEY     NOT NULL,
                LATITUDE       NUMERIC(6,3)      NOT NULL,  
                LONGITUDE      NUMERIC(6,3)      NOT NULL)  

接下来我的软件(Java)正在使用这样一个简单的SQL请求来寻找GEO_OBJECTS:

SELECT * FROM GEO_OBJECTS WHERE纬度< = 123.4 AND纬度> = 26.32 AND经度< = 12.41 AND经度> = 6.23;

如果我在纬度和经度上创建一个INDEX,它会改善表现吗?

接下来,当我得到此查询的结果时,我正在使用半正式公式来查找大圆距离的对象。

1 个答案:

答案 0 :(得分:2)

普通索引可能对某些一维间隔查询有所帮助,但在两个或多个维度中,您需要为此类查询设计的索引,例如R树。

SQLite确实有R-tree module,但它可能没有被编译到您的数据库驱动程序中。

您可以考虑SpatiaLite,它源自SQLite并具有许多有用的功能(例如计算大圆距离)。