createSpatialTable method

void createSpatialTable(
  1. TableName tableName,
  2. int tableSrid,
  3. String geometryFieldData,
  4. List<String> fieldData,
  5. List<String>? foreignKeys,
  6. bool avoidIndex,
)

Implementation

void createSpatialTable(
    TableName tableName,
    int tableSrid,
    String geometryFieldData,
    List<String> fieldData,
    List<String>? foreignKeys,
    bool avoidIndex) {
  StringBuffer sb = new StringBuffer();
  sb.write("CREATE TABLE ");
  sb.write(tableName.fixedName);
  sb.write("(");
  for (int i = 0; i < fieldData.length; i++) {
    if (i != 0) sb.write(",");
    sb.write(fieldData[i]);
  }
  sb.write(",");
  sb.write(geometryFieldData);
  if (foreignKeys != null) {
    for (int i = 0; i < foreignKeys.length; i++) {
      sb.write(",");
      sb.write(foreignKeys[i]);
    }
  }
  sb.write(")");

  _sqliteDb.execute(sb.toString());

  List<String> g = geometryFieldData.split(RegExp(r"\s+"));
  addGeoPackageContentsEntry(tableName, tableSrid, null, null);
  addGeometryColumnsEntry(tableName, g[0], g[1], tableSrid, false, false);

  if (!avoidIndex) {
    createSpatialIndex(tableName, g[0]);
  }
}