sqlite,地理坐标索引?

我有一个包含地理数据的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纬度 = 26.32 AND经度 = 6.23;

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

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

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

SQLite确实有一个R树模块 ,但它可能没有被编译到您的数据库驱动程序中。

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