OnlineMapMaker logo

GeoPackage Viewer — View GPKG Files on an Interactive Map

Upload a .gpkg file and see every table plotted on an interactive map right away. Click any point, line or polygon to read its attributes, change the color, and download the result as GeoJSON, fast, in your browser, with no extra program needed. Open in full screen ↗

Rate this tool:
Advertisement
Advertisement
Loading map…
Need assistance with your GIS project?Explore Our Services

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

Step 1: Open the tool
1
Step 1
Open the tool
The map opens on a world view with no data yet. The toolbar at the top has Upload, Sample Data and a basemap switch. The sidebar holds the table list, style controls and export button.
Step 2: Load your GeoPackage
2
Step 2
Load your GeoPackage
Upload a .gpkg file, drag and drop it onto the map, or click "Sample Data" to try the tool right away with a ready-made demo file.
Step 3: Watch the map zoom to fit
3
Step 3
Watch the map zoom to fit
The tool automatically picks the best table, a registered geometry layer if one exists, otherwise the first table with detected latitude/longitude columns, and zooms the map to show every row in it.
Step 4: Check the Tables list
4
Step 4
Check the Tables list
The sidebar lists every table in the file, tagged as a geometry layer, a lat/lng table, or a table with no location data, so you know at a glance what the file contains.
Step 5: Switch tables if you need to
5
Step 5
Switch tables if you need to
Click any other tagged table in the list to load it onto the map in place of the current one.
Step 6: Pick columns for an unlabeled table
6
Step 6
Pick columns for an unlabeled table
If a table's coordinate columns are not auto-detected, a small panel lets you choose the right latitude and longitude columns by hand, then click "Plot This Table".
Step 7: Click a feature
7
Step 7
Click a feature
Click any point, line or polygon to open a popup with every attribute stored in that row. The clicked shape gets a bright highlight outline.
Step 8: Change the color and style
8
Step 8
Change the color and style
Pick a swatch or use the color picker to recolor the table, and use the Line Thickness and Fill Opacity sliders to adjust how bold the styling looks.
Step 9: Download your data
9
Step 9
Download your data
Click "Download Table as GeoJSON" to save the currently loaded table, ready for any GIS tool or web map.

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

How big a file can I load?
Files up to 100 MB are accepted, and up to 5,000 rows are read per table. If a table has more rows, the tool tells you how many were shown and how many were left out.
What is the difference between GeoPackage and a Shapefile?
A Shapefile is actually a group of separate files (.shp, .dbf, .shx and more) that only holds one geometry type and has short field-name limits. A GeoPackage is one single file that can hold many layers, mixed geometry types and long field names, with no meaningful size limit for most projects.
What is a GeoPackage file, in simple words?
It is a single file, ending in .gpkg, that holds map data, points, lines and polygons, along with their attributes and coordinate system. It is built on top of the SQLite database format, so it can be opened with ordinary SQL tools, not just GIS software.
What software can open GeoPackage files?
QGIS, ArcGIS, most modern GIS libraries, and any tool built on GDAL/OGR can open GeoPackage files. Since it is just a SQLite database at its core, any SQLite-capable tool can also read the raw tables directly.
What is the difference between GeoPackage and SpatiaLite?
Both store spatial data inside a SQLite file, but they use different internal formats for geometry and different metadata tables. GeoPackage is an OGC standard built around a small header plus standard WKB encoding. SpatiaLite is an older, separate extension with its own binary geometry format. This tool reads GeoPackage files specifically; our SQLite Viewer tool reads SpatiaLite and plain SQLite files.
Can I try the tool without uploading my own file?
Yes. Click "Sample Data" to build and load a small demo GeoPackage on the spot, with one registered geometry table and one plain latitude/longitude table, so you can see how table switching, popups and coloring work before uploading anything of your own.
What coordinate systems are supported?
WGS84 (plain latitude/longitude) and Web Mercator are handled directly. For other coordinate systems, the tool reads the definition stored inside the file's gpkg_spatial_ref_sys table and reprojects to WGS84 where it can. If a coordinate system can't be resolved, the original coordinates are shown as-is.
Is my GeoPackage uploaded to a server?
No. The file is read, parsed and rendered entirely inside your own browser tab using a WebAssembly build of SQLite. Nothing is uploaded or stored anywhere, so it's safe to use with private or sensitive location data.
Can a GeoPackage hold more than one layer?
Yes. A single .gpkg file commonly holds several tables, each one a separate layer, possibly with different geometry types. The sidebar's Tables list shows every layer found in the file so you can switch between them.
Does GeoPackage support raster or imagery data, not just vector shapes?
Yes, the GeoPackage standard also defines how to store tiled raster data, such as pre-rendered map tiles for offline basemaps. This viewer focuses on vector tables (points, lines and polygons); raster tile tables are not rendered here.

Real-World Use Cases

GeoPackage has become a common default across GIS work. Here is where this viewer earns its place:

🗺️
Offline Mobile Navigation and Basemaps
Developers building offline map apps package tiles and reference layers into a GeoPackage, then check the vector layers here before testing the full offline package on a device.
🔧
Utility and Infrastructure Asset Management
Utility teams open a GeoPackage of poles, pipes or equipment locations to review positions and attached maintenance records before an inspection or work order is issued.
🏛️
Government and Defense Data Exchange
Agencies that require or recommend GeoPackage for geospatial data delivery use this tool to quickly inspect a submitted file's contents before it goes through a formal review process.
🌱
Environmental and Conservation Monitoring
Researchers and conservation teams review sensor locations, survey routes or habitat boundaries stored in a GeoPackage, checking coverage and attributes before running further analysis.
🧭
Field Survey Data Collection
Field teams using apps like QField or Mergin Maps export their collected points, lines and polygons as a single GeoPackage file, then open it here to check the data landed correctly before importing it into a permanent GIS project.
🔁
QGIS and ArcGIS Data Interop
GIS analysts moving a dataset between QGIS and ArcGIS use GeoPackage as the exchange format, and preview the file here to confirm layers, geometry types and attributes survived the transfer intact.
Advertisement
Advertisement

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.

Advertisement
Advertisement

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.

Advertisement
Advertisement

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.

Muhammad Gulraiz Khan, GIS Expert and Founder of KONAKTIVE and OnlineMapMaker.com

About the Author

Muhammad Gulraiz Khan

GIS Expert & Consultant · Founder, KONAKTIVE

Muhammad Gulraiz Khan is a GIS expert with over a decade of professional experience delivering geospatial solutions for the energy sector, including projects for the World Bank, the International Finance Corporation (IFC), and USAID. He built OnlineMapMaker.com to make professional-grade mapping tools free and accessible to everyone.

Advertisement
Advertisement