GeoPackage Feature Count & Bounds Inspector

Upload a .gpkg file to list feature layers, row counts, CRS labels, geometry types, and declared bounds before opening a full GIS project.

Read-only SQLite Layer counts Bounds summary No conversion
.gpkg SQLite file gpkg_contents layers, CRS, extents geometry columns COUNT(*) per feature layer parcels: 127,913 roads: 517 bounds preview
Share this tool

Inspection mode

1.Open SQLite read-only.

2.Read GeoPackage metadata tables.

3.Run safe row counts per feature layer.

The file is inspected temporarily and not converted, published, or kept after the request.

Best for quick layer inventory, feature counts, CRS checks, and declared extents before opening desktop GIS.

Inspecting GeoPackage...

Upload a GeoPackage to inspect feature layers and bounds.

How the GeoPackage Inspector Reads a File

.gpkg SQLite database Metadata tables gpkg_contents geometry_columns COUNT(*) feature rows Declared layer bounds become the quick extent preview.

The GeoPackage Feature Count & Bounds Inspector is built for the quick inventory step that happens before conversion, upload, or desktop GIS review. Instead of exporting features, it opens the GeoPackage as a read-only SQLite database, checks the official metadata tables, counts records in each feature table, and reports the bounds already declared by the file.

That makes it useful when you need to know whether a client delivery contains the expected parcel, road, address, or utility layers. It is also helpful when a GeoPackage is too large to casually open in QGIS and you only need a layer count, geometry type, CRS label, and approximate spatial extent.

What Is a GeoPackage Feature Count?

A GeoPackage feature count is the number of rows stored in a feature table. In most vector GeoPackages, each row represents one spatial feature, such as a parcel polygon, road line, address point, or survey boundary. Counting features is different from converting geometry: the inspector can answer how many records a layer contains without decoding every geometry blob.

How the GeoPackage Bounds Inspector Works

GeoPackage files store layer metadata in SQLite tables. The inspector reads gpkg_contents to find feature layers and declared min/max coordinates, joins gpkg_geometry_columns to identify the geometry column and geometry type, then joins gpkg_spatial_ref_sys to label the coordinate reference system. If declared bounds are missing but a standard RTree index table exists, the tool can use that index as a fast fallback.

Why gpkg_contents and gpkg_geometry_columns Matter

The gpkg_contents table is the file inventory. It tells software which tables are feature layers and can store each layer extent. The gpkg_geometry_columns table links a layer to its geometry column and declared geometry type. Reading both tables avoids guessing from arbitrary SQLite tables and keeps the report aligned with the GeoPackage standard.

Feature Counts vs Geometry Counts

This inspector reports row counts from each feature table. It does not explode multipart geometries into individual rings, parts, or vertices. A MultiPolygon row counts as one feature row, which is the same inventory number most GIS users expect when checking a layer before import or delivery.

When GeoPackage Bounds May Be Missing or Stale

Bounds in gpkg_contents are metadata. They are fast to read, but they can be missing in hand-built files or stale after manual SQLite edits. When the bounds look wrong, open the file in QGIS or use GDAL to recompute extents. The inspector clearly marks whether bounds came from gpkg_contents, an RTree fallback, or were unavailable.

GeoPackage Inspection in QGIS, GDAL, and SQLite

This web inspector is intended for quick review. For production repair, reprojection, geometry validation, or schema changes, use mature GIS tools. In GDAL, `ogrinfo input.gpkg` provides a detailed inventory. In QGIS, the Browser panel and Layer Properties show feature counts, CRS, extent, and provider metadata. In SQLite, direct queries against `gpkg_contents` and `gpkg_geometry_columns` expose the same core layer inventory.

GeoPackage Feature Count FAQ

How do I count features in a GeoPackage?

Feature counts come from running COUNT(*) on each feature table listed in gpkg_contents and gpkg_geometry_columns. This tool performs that read-only query automatically for every feature layer.

Does a GeoPackage store layer bounds?

Yes. GeoPackage feature layers can store min_x, min_y, max_x, and max_y in gpkg_contents. Some files omit or fail to update those values, so the inspector marks the bounds source clearly.

Why are my GeoPackage bounds missing?

Bounds may be null when the file was created manually, exported by a lightweight writer, or edited after creation. If an RTree index exists, the inspector can use it as a fast fallback.

Is this the same as converting GPKG to GeoJSON?

No. This tool only inspects metadata and row counts. Use the GPKG to GeoJSON converter when you want downloadable GeoJSON output.

Can a GeoPackage contain multiple feature layers?

Yes. One GeoPackage can hold many feature tables, along with tiles, attributes, and extension tables. This inspector reports only vector feature layers.

What does SRS ID mean in a GeoPackage?

SRS ID links a layer to gpkg_spatial_ref_sys, where the coordinate reference system is described. When the organization is EPSG, the label is shown as an EPSG code.

Authoritative References