liujiusheng / blog

个人博客,blog
19 stars 0 forks source link

设计一套简单易懂的,文件系统即服务的GIS数据存储系统 #245

Open liujiusheng opened 2 years ago

liujiusheng commented 2 years ago

目标

  1. 采用常规文件系统存储数据
  2. 支持矢量数据、tiff栅格数据、pdf、txt、png、jpeg、xlsx等常见格式,暂不支持slpk、3dtile等三维格式
  3. 可在浏览器端浏览目录和打开文件查看
  4. 支持分布式扩展,但默认保证每个节点上的数据为全量数据(类似主从复制,方便并行运算),必要时可开启非全量数据模式
  5. 可支持打包copy文件夹作为成果
  6. 每一类矢量数据(元数据、数据、索引等)要像tiff文件一样统一存到一个文件中
  7. 定义一种新的矢量数据库格式,支持字段别名、表别名等
  8. 矢量数据支持从shp、geojson、wkt、gpx格式导入,不再支持从gdb等商业化专用格式导入

数据库格式

数据库文件夹(可以是中文) |--------矢量表1 |--------|----------------头信息(每一类信息一行,位置固定,如无信息则空出这一行) |--------|----------------|--------表别名 |--------|----------------|--------空间数据类型(点、线、面) |--------|----------------|--------索引类型(gist、btree等,为空则不建立索引) |--------|----------------|--------坐标系(只支持epsg坐标号) |--------|----------------|--------字段描述开始行 |--------|----------------|--------字段描述结束行 |--------|----------------|--------数据开始行 |--------|----------------|--------数据结束行 |--------|----------------|--------索引开始行 |--------|----------------|--------索引结束行 |--------|----------------|--------其它头信息...... |--------|----------------字段描述(每个字段占一行,每个属性用逗号分隔) |--------|----------------|--------字段1(字段英文名,字段别名,字段描述,字段类型,字段长度) |--------|----------------|--------字段2 |--------|----------------|--------字段3 |--------|----------------|--------字段n |--------|----------------数据(每条数据占一行,每个属性用逗号分隔) |--------|----------------索引 |--------矢量表2 |--------......