GpkgFeatureCoverage

Worldwind-private side table tracking the feature cache state for one features table, kept separate from the features themselves so the features table can be a clean, standard GeoPackage features layer that any GIS (ArcGIS / QGIS / GDAL) reads natively.

This is the feature analogue of GpkgTileRevalidation, but a feature "tile" is many rows (one per geometry) rather than a single tile-user-data row, so coverage is keyed by the slippy tile address (tpudt_name, tile_z, tile_x, tile_y) rather than a single row id. One row records, per fetched tile region:

  • validatedAt — epoch-millis the region was last confirmed fresh (stale-while-revalidate trigger and eviction age), bumped on a fresh fetch AND on a 304.

  • etag / httpLastModified — HTTP validators for a conditional refresh.

  • isEmpty — the negative cache: the region was fetched and the server returned no features. Moving this here removes the null-geometry sentinel rows that used to pollute the features table and confuse external readers.

Not part of the OGC GeoPackage standard — external readers see an unknown table and ignore it. The ww_ author prefix stays off the spec-reserved gpkg_ namespace; the table is declared in gpkg_extensions (worldwind_feature_coverage), scoped to itself, so foreign GIS still edit the standard features layer freely.

CREATE TABLE IF NOT EXISTS ww_feature_coverage (
id INTEGER PRIMARY KEY AUTOINCREMENT,
tpudt_name TEXT NOT NULL, -- the features table this coverage row describes
tile_z INTEGER NOT NULL,
tile_x INTEGER NOT NULL,
tile_y INTEGER NOT NULL,
etag TEXT,
http_last_modified TEXT,
validated_at INTEGER,
is_empty INTEGER NOT NULL DEFAULT 0,
UNIQUE (tpudt_name, tile_z, tile_x, tile_y)
)

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
var etag: String?
Link copied to clipboard
Link copied to clipboard
var id: Long
Link copied to clipboard
Link copied to clipboard
var tileX: Int
Link copied to clipboard
var tileY: Int
Link copied to clipboard
var tileZ: Int
Link copied to clipboard
lateinit var tpudtName: String
Link copied to clipboard