pub const DDL_GPKG_SPATIAL_REF_SYS: &str = "CREATE TABLE gpkg_spatial_ref_sys (\n\
srs_name TEXT NOT NULL,\n\
srs_id INTEGER NOT NULL PRIMARY KEY,\n\
organization TEXT NOT NULL,\n\
organization_coordsys_id INTEGER NOT NULL,\n\
definition TEXT NOT NULL,\n\
description TEXT\n\
)";
pub const DDL_GPKG_CONTENTS: &str = "CREATE TABLE gpkg_contents (\n\
table_name TEXT NOT NULL PRIMARY KEY,\n\
data_type TEXT NOT NULL,\n\
identifier TEXT UNIQUE,\n\
description TEXT DEFAULT '',\n\
last_change DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),\n\
min_x DOUBLE,\n\
min_y DOUBLE,\n\
max_x DOUBLE,\n\
max_y DOUBLE,\n\
srs_id INTEGER,\n\
CONSTRAINT fk_gc_r_srs_id FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id)\n\
)";
pub const DDL_GPKG_GEOMETRY_COLUMNS: &str = "CREATE TABLE gpkg_geometry_columns (\n\
table_name TEXT NOT NULL,\n\
column_name TEXT NOT NULL,\n\
geometry_type_name TEXT NOT NULL,\n\
srs_id INTEGER NOT NULL,\n\
z TINYINT NOT NULL,\n\
m TINYINT NOT NULL,\n\
CONSTRAINT pk_geom_cols PRIMARY KEY (table_name, column_name),\n\
CONSTRAINT uk_gc_table_name UNIQUE (table_name),\n\
CONSTRAINT fk_gc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name),\n\
CONSTRAINT fk_gc_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id)\n\
)";
pub fn ddl_feature_table(table_name: &str) -> String {
format!(
"CREATE TABLE {table_name} (\n\
fid INTEGER PRIMARY KEY AUTOINCREMENT,\n\
geom BLOB\n\
)"
)
}
pub struct DefaultSrs {
pub srs_name: &'static str,
pub srs_id: i64,
pub organization: &'static str,
pub organization_coordsys_id: i64,
pub definition: &'static str,
pub description: &'static str,
}
pub const SRS_UNDEFINED_CARTESIAN: DefaultSrs = DefaultSrs {
srs_name: "Undefined cartesian SRS",
srs_id: -1,
organization: "NONE",
organization_coordsys_id: -1,
definition: "undefined",
description: "undefined cartesian coordinate reference system",
};
pub const SRS_UNDEFINED_GEOGRAPHIC: DefaultSrs = DefaultSrs {
srs_name: "Undefined geographic SRS",
srs_id: 0,
organization: "NONE",
organization_coordsys_id: 0,
definition: "undefined",
description: "undefined geographic coordinate reference system",
};
pub const SRS_WGS84: DefaultSrs = DefaultSrs {
srs_name: "WGS 84 geodetic",
srs_id: 4326,
organization: "EPSG",
organization_coordsys_id: 4326,
definition: "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",\
SPHEROID[\"WGS 84\",6378137,298.257223563,\
AUTHORITY[\"EPSG\",\"7030\"]],\
AUTHORITY[\"EPSG\",\"6326\"]],\
PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],\
UNIT[\"degree\",0.0174532925199433,\
AUTHORITY[\"EPSG\",\"9122\"]],\
AUTHORITY[\"EPSG\",\"4326\"]]",
description: "longitude/latitude coordinates in decimal degrees on the WGS 84 spheroid",
};
pub fn default_srs_rows() -> [&'static DefaultSrs; 3] {
[
&SRS_UNDEFINED_CARTESIAN,
&SRS_UNDEFINED_GEOGRAPHIC,
&SRS_WGS84,
]
}