What Is a GeoPackage File?
A GeoPackage is an open file format for storing geographic data. It uses the SQLite database format as its container, so a single .gpkg file can hold points, lines and polygons, along with their attributes, coordinate system, and even background map tiles, all inside one file. The format is maintained by the Open Geospatial Consortium (OGC), the same standards body behind KML and WMS, which means any software that follows the specification can read a GeoPackage file the same way, regardless of who made it.
How GeoPackage Is Used Today
QGIS has used GeoPackage as its default save format since version 3.0, replacing the Shapefile as the suggested choice for new layers and projects. Field data collection apps like QField and Mergin Maps export survey results as GeoPackage files, since a single file is easy to sync to and from a phone or tablet, even without a network connection. Government mapping agencies and defense organizations increasingly require or recommend GeoPackage for data exchange, and European data-sharing guidance under the INSPIRE directive lists it as an accepted encoding for spatial datasets. It is also a supported format in ArcGIS, making it a common bridge between open-source and commercial GIS workflows. Because a GeoPackage can also hold pre-rendered map tiles, it is a popular way to package an entire offline basemap for a navigation or field app that needs to work with no signal.
Why GeoPackage Replaced the Shapefile
For over two decades, the Esri Shapefile was the default way to share vector map data. It has real limits though: one Shapefile can only hold a single geometry type, attribute field names are capped at 10 characters, a single dataset is split across three or more separate files (.shp, .dbf, .shx, and others), and there is a practical 2 GB size limit. GeoPackage fixes all of this. One .gpkg file can hold many layers with mixed geometry types, long field names, and no meaningful size limit for most real projects, with everything staying together in a single file that is easy to copy, email, or upload.
Changing the Color of Your Data
Three controls in the sidebar let you restyle the whole table instantly, without touching the original file:
- Color: pick any color from the swatches or the color picker. It applies to lines, polygon fills and outlines, and point markers straight away.
- Line Thickness: make outlines and lines thinner or thicker, from a hairline to a bold, poster-ready stroke.
- Fill Opacity: control how solid or see-through polygon fills are, from a light wash to a fully solid color.
Every change applies live to the table already on the map, so you can try a few looks in seconds before deciding on one.
Inside a GeoPackage: Structure and Core Tables
Because a GeoPackage is a SQLite database, opening one just means reading its tables. A small set of required tables, all named with a gpkg_ prefix, describe everything else in the file. gpkg_contents acts as a table of contents, listing every layer along with its bounding box and when it was last updated. gpkg_geometry_columns records which table and column actually holds geometry, and what type of shape it stores. gpkg_spatial_ref_sys stores the coordinate system definitions the file references, always including WGS84 by default. For raster data, gpkg_tile_matrix and gpkg_tile_matrix_set describe each zoom level of a tile pyramid the same way gpkg_geometry_columns describes a vector layer. An optional gpkg_extensions table lists any extra, non-core features the file uses, so a reader always knows what it is dealing with before it starts parsing data.
Watch: GeoPackage Viewer in Under a Minute
Prefer to watch instead of read? This short walkthrough covers uploading a GeoPackage file, viewing its layers on the map, and exporting what you see.
Two Ways to Get Your Data on the Map
Get a GeoPackage open in the tool with whichever method suits you:
- Upload or drag and drop: Click "Upload" and choose a .gpkg file, or drag the file straight onto the map from your file browser.
- Try Sample Data: Click "Sample Data" to build and load a small demo GeoPackage with a registered geometry table and a plain lat/lng table, so you can try clicking, coloring and switching tables right away.
As soon as a file loads, the tool lists every usable table in the sidebar and automatically plots the best match, a registered geometry table if one exists, otherwise the first table with recognizable latitude/longitude columns, and zooms the map to fit its data. Click any other table in the list to switch to it instead.
Step by Step









Coordinate Systems in a GeoPackage
A GeoPackage does not have to use plain latitude and longitude. Its gpkg_spatial_ref_sys table can register any coordinate system, including regional projections and Web Mercator, each identified by a numeric SRS id attached to every geometry table. A reader that wants to show the data on an ordinary web map, including this tool, needs to look up that SRS id and reproject the coordinates to WGS84 if they are not already in it. A correctly structured GeoPackage carries everything a viewer needs to place your data in the right spot on Earth, without any guessing.
How Geometry Is Stored Inside the File
Every point, line and polygon in a GeoPackage is stored as a single binary value in a BLOB column. That value starts with a small header, just a few bytes recording the coordinate system and an optional bounding box, followed by the shape itself in Well-Known Binary (WKB), the same binary geometry encoding used by PostGIS and most other spatial databases. This choice matters: any tool that already knows how to read standard WKB only needs a few extra lines of code to handle the GeoPackage header on top, which is exactly how this viewer decodes your data directly in your browser.
Common Questions
Real-World Use Cases
GeoPackage has become a common default across GIS work. Here is where this viewer earns its place:
A Brief History of the GeoPackage Standard
The OGC adopted the first version of the GeoPackage Encoding Standard in 2014, after several years of work by a group of GIS vendors and government agencies looking for a better way to package geographic data. The goal was a format that any application could read and write using ordinary SQL, without needing a proprietary driver or a paid license. Since that first release, the standard has been revised more than once, adding support for things like linked attribute tables and tiled elevation data through optional extensions, while keeping the core file structure stable so older software can still read newer files.
Exporting What You See
Click "Download Table as GeoJSON" to save the currently loaded table, with geometry decoded and reprojected, as a standard GeoJSON file. Style changes such as color only affect the map view, not the exported file. GeoJSON opens without problems in QGIS, ArcGIS, Leaflet, Mapbox GL JS, and practically every modern mapping tool.
See Every Attribute by Clicking
Click any point, line, or polygon on the map and a popup opens listing every column value stored in that row, names, categories, numbers, dates, anything the table holds except the raw geometry itself. The clicked feature also gets a bright highlight outline, so you always know exactly which shape the popup belongs to, even in a dense or overlapping table.
Working With Multiple Tables
A single GeoPackage often holds more than one table worth mapping, a layer of survey points alongside a layer of site boundaries, for example. The sidebar's Tables list shows every table found in the file, tagged as a registered geometry layer, a table with detected latitude/longitude columns, or a table with no location data. Click any tagged table to load it onto the map in place of whatever was showing before.
If a table has no obviously named latitude/longitude columns, a small panel lets you pick the right two columns by hand, the same way as this site's CSV to Map tool, so a table using unusual column names like "y_coord" or "pos_lng" is never left out.
More Tools You Might Like
Map tiles © OpenStreetMap contributors and Protomaps (hosted by KONAKTIVE), CARTO, Esri (satellite). Database reading powered by sql.js. Map rendering by Leaflet. All file reading and rendering is local, no data is uploaded to any server.
