1.一种面向嵌入式的三维空间数据存储方法,其特征在于,包括如下步骤:
(1)开启SQLite源码R*树索引模块并嵌于Android客户端应用程序下;
(2)设计R*树数据库接口,实现Android客户端数据库对R*树检索的支持;
(3)在Android客户端建立R*树索引表和普通数据表;
(4)建立三维盒状模型,生成obj模型文件;
(5)解析三维obj模型文件,设计点结构、面结构和体结构;
(6)计算三维空间数据的最小外包矩形,将最小外包矩形数据存储于R*树索引表,三维空间数据的几何数据转化为BLOB数据,与属性数据共同存储于普通数据表。
2.根据权利要求1所述的三维空间数据存储方法,其特征在于,所述步骤(2)包括如下步骤:
(21)编写带有本地声明的用于新建、插入、读取数据的java类方法;
(22)利用编译器编译java文件,生成.h文件;
(23)实现.h文件中的方法;
(24)生成动态链接库,存放于Android工程的lib文件下。
3.根据权利要求1所述的三维空间数据存储方法,其特征在于,所述步骤(3)中R*树索引表中含有五个字段,第一个字段为数据行ID,其他四个字段存储最小外包矩形的四个参数;所述数据行ID为整形数据,用于和普通数据表关联;所述最小外包矩形的四个参数为最大横坐标值、最小横坐标值、最大纵坐标值、最小纵坐标值。
4.根据权利要求1所述的三维空间数据存储方法,其特征在于,所述步骤(3)中普通数据表含有三个字段,第一个字段为与R*树索引表对应的数据行ID,第二个字段为BLOB字段,第三个字段为存储属性数据的属性字段。
5.根据权利要求1所述的三维空间数据存储方法,其特征在于,所述步骤(4)中的三维盒状模型包括二维地图数据和高度数据。
6.根据权利要求1所述的三维空间数据存储方法,其特征在于,所述步骤(5)中,点结构包含X坐标值、Y坐标值、Z坐标值;所述面结构包含两个数组,其中一个数组存储该面的所有顶点集合,另一个数组存储该面的顶点索引信息;所述体结构中含有一个面结构的数组,存储组成该体的所有面数据。
7.根据权利要求1所述的三维空间数据存储方法,其特征在于,所述步骤(6)包含如下步骤:
(71)计算三维空间数据的最小外包矩形数据;
(72)将最小外包矩形数据插入索引表;
(73)三维空间几何数据按照模型总面数、面点数、点坐标、面索引总数、面索引的规则转化为BLOB数据;
(74)将BLOB数据和属性数据分别存储在普通数据表中的BLOB字段和属性字段中。