What Is a GeoPackage (GPKG) — and How to Convert To and From It
You keep hearing about GeoPackage files. A partner sends you a .gpkg. A download page lists it next to Shapefile and GeoJSON. It looks like one more format to learn. In fact, GeoPackage is the format that fixes the pains of the other two: no set of loose parts to lose, no 10-letter field names, and room for many layers in one file.
This guide explains what a GeoPackage is in plain words, when to use it, and how to convert to and from it with the GeoPackage converter on the home page. You will also see why the road in the GeoJSON to Shapefile guide cuts long field names — and why this road does not.
By the end you will be able to choose with clear eyes: GeoPackage as the working master for most GIS teams, GeoJSON for the web, Shapefile for old tools that demand it, and KML for Google Earth. Each has a place. GeoPackage's place is bigger than most teams yet know.
What a GeoPackage Really Is
A GeoPackage is one file that is, inside, a small database. The tech name for the base is SQLite, the most used database in the world — it runs in every phone. The file holds tables. One table can hold a layer of points with their facts. A second table can hold a layer of polygons. One file, many layers, each with full field names and clean types.
It is an open standard, set by the Open Geospatial Consortium (OGC), the same body that sets the KML and GML standards. It is not owned by one firm. QGIS reads and writes it as a first-class format. ArcGIS reads it. GDAL, the engine under most open GIS tools — and under this site — treats it as a core format.
Because it is a database, it can hold large data well. There is no 2 GB part cap of the Shapefile kind. Field names can be long and clear. Text is UTF-8, so names in any language store clean. One layer can hold one shape type, like most sound formats, but the file can hold as many layers as the job needs.
GeoPackage Next to the Formats You Know
Next to a Shapefile, the wins are plain. One file, not a set. Long names, not cut names. Many layers, not one. No sidecar .prj to lose — the coordinate system is stored in the file, in a table made for it. If you have ever had a Shapefile arrive with a missing part, you know the worth of that. Our fix guide for a Shapefile that will not open is a list of pains this format does not have.
Next to GeoJSON, the trade is about place of use. GeoJSON is text a web page reads at once; it shines on the web and in code. A GeoPackage is a database a GIS program queries; it shines in QGIS, in analysis, and as a master store for large or multi-layer data. Web browsers do not read it raw. So the pattern is: store in GeoPackage, publish in GeoJSON.
There is one more quiet win. A GeoPackage can hold tile images and extra tables next to the vector layers. Most teams never need that. But for field work — a team with a tablet and no signal — one file with maps and data in it is a real gift. That is the use the standard was built for.
Words to Know
The layer is the key term here. A GeoPackage is best understood as a box of layers.
- Layer. one set of features of one kind, shown as one sheet on a map. A city file may hold a roads layer and a parks layer.
- Feature. one real thing on the map, such as one park, one road, or one shop. A file can hold many features.
- Attribute. a fact about a feature, stored as text or a number. A park has a name. A road has a speed limit. Those facts are attributes.
- Coordinate system (CRS). the rule that says what the numbers in a file mean. It tells a program where each point sits on Earth. Without it, numbers are just numbers.
When to Convert To and From a GeoPackage
Convert to a GeoPackage when the file becomes your working copy. Convert from it when a tool or a reader needs a different form:
- To GeoPackage: when you gather layers from many sources into one tidy master file.
- To GeoPackage: when field names matter and a Shapefile keeps cutting them.
- From GeoPackage: to GeoJSON, when the data goes to a web map or an API.
- From GeoPackage: to Shapefile, when an old tool or an office demands that form — one layer per Shapefile.
- From GeoPackage: to KML, when a reader needs the data in Google Earth.
The habit to build is simple. Keep one master, in GeoPackage, and export copies for each use. That is the same master-and-copy habit the other guides teach, with GeoPackage as the best master most teams can pick. To act on it at scale, move many layers in one batch job when a whole project changes hands.
What One File Can Hold
Here is a small city project stored three ways. The facts are the same in each row. Only the package changes:
| Project part | As Shapefiles | As GeoJSON | As one GeoPackage |
|---|---|---|---|
| Roads (lines) | 1 set of 4 files | 1 file | 1 layer in the file |
| Parks (polygons) | 1 set of 4 files | 1 file | 1 layer in the file |
| Lights (points) | 1 set of 4 files | 1 file | 1 layer in the file |
| Whole project to send | 3 ZIPs, 12 files | 3 files | 1 file: city.gpkg |
Count the risk. With Shapefiles, 12 files must all arrive, with the right names, or a layer breaks. With GeoJSON, 3 files must stay linked by name alone. With a GeoPackage, you send one file. If it arrives, the project arrives. That is the whole pitch, and for teams that ship data each week, it is enough.
Now count the names. A roads layer with a field called surface_material_type keeps that name in GeoJSON and in GeoPackage. In a Shapefile it shrinks to 10 letters. Multiply that by 40 fields and 3 layers, and the rename work on the Shapefile road is a real cost, paid again at each hand-over.
Keep Your Source Safe
Work on a copy, not on your only file. Save the first file in a safe place and do not change it. If a test goes wrong, you can start again from the clean source. This sounds like a small point, but it saves more work than any other habit in this guide.
Give each test a clear name. A name like test-1 tells you the order of your tries. A name like final-final-2 tells you nothing at all. When you find the settings that work, write them down in a short note next to the files. The next file of the same kind will then take minutes, not an hour.
How to Convert To and From a GeoPackage
Both roads use the same tool and the same checks. Convert to a GeoPackage first, check the layers, then export a copy in the form your next tool needs.
Step 1: Convert each source layer to GeoPackage
Upload one source file at a time — a Shapefile ZIP, a GeoJSON, or a KML. Choose GeoPackage as the output. Run the job and read the report: features in and out, field names whole, and the coordinate system stored. Repeat for each layer. If the sources use different coordinate systems, reproject each one to a shared system as you go, so the layers line up in the master file.
Step 2: Check each layer as it lands
After each job, check the counts and preview that layer alone. A master file built from unchecked layers is a box of doubts. It takes two minutes per layer to check counts, fields, and place on the map. Do it while the source is still open in front of you, not next week.
Step 3: Name layers like a person will read them
When you build a multi-layer file in your GIS program, give each layer a clear, short name: roads, parks, lights. Avoid names with spaces or odd marks; some tools cope, some do not. A reader who opens your file cold should know what each layer is from its name alone.
Step 4: Store the master and mark it as the master
Save the file with a name like city-master-2026-11-07.gpkg. Keep it in the project folder, not in a downloads folder. Write one line in the project note: this is the master; all exports come from it. Most data mess is not bad formats. It is three files that each claim to be the true one.
Step 5: Export a GeoJSON copy for the web
When the data goes to a web map, upload the GeoPackage, pick the layer you need, and choose GeoJSON. One layer per GeoJSON file keeps counts clean. Check the preview, then hand the web team the file. The master stays home; the copy does the travel.
Step 6: Export a Shapefile copy for old tools
When an office demands a Shapefile, upload the GeoPackage, pick one layer, and choose Shapefile (ZIP). Mind the old limits on this road: field names shrink to 10 letters, so read the rename list in the report and pass it on to the office with the file. One layer per job. Three layers means three ZIPs.
Step 7: Export a KML copy for Earth readers
For a reader in Google Earth, pick the layer, choose KML, and check the names: the name field becomes the label in Earth. Send the KML with a one-line note and the date. If the reader sends edits back, convert their KML to GeoJSON, compare counts, and merge the changes into the master by hand — never overwrite the master with a view file.
How to Check Your Result
Never trust a conversion you have not checked. The good news is that a sound check takes just a few minutes, and it is the same each time you work on a GeoPackage conversion.
First, match the counts. The report shows how many features went in and how many came out. The two counts should be the same. If the output count is lower, a step dropped data, and you should find out why before you share the file.
Next, look at the map preview. Your data should sit in the right town, state, or sea. If it sits in the ocean, or on the wrong side of the world, the coordinate system is the prime suspect. Zoom in on one place you know well and check that roads, parks, or points fall where they should.
Then check the fields. Open the field list in the report and read the names. Make sure the key fields are still there, with the right names and the right kind of values. Pick one feature you know and match each value back to the source by hand.
- Open the master in QGIS if you have it, and count the layers. Each source layer should be there, with its full feature count.
- Check one long field name in the GeoPackage. It should be whole, letter for letter, as it was in the source.
- Export one layer and convert it back. Counts and field names should survive the round trip with no change.
Last, keep the source file. Save the result with a clear name that holds the date and the format, like parks-geojson-2026-11-07.zip. Keep the source and the result in one folder. If a question comes up next month, you can trace each feature back to where it came from.
Common Mistakes and How to Fix Them
The Other Tool Says It Cannot Read the File
Check the file name ends in .gpkg and that the file is whole — a cut-off download is the most common cause. Then check the tool's age. Very old GIS builds predate the standard. For those readers, export a Shapefile or GeoJSON copy from the master instead of forcing the new format on an old tool.
Layers Do Not Line Up
The sources were stored in different coordinate systems, and no reprojection was done on the way in. A layer in metres laid over a layer in degrees will sit in the wrong place by a huge margin. Reproject each source to one shared system as you convert it, and check each layer's preview against a known place.
A Layer Is Missing After Conversion
One file holds one layer per conversion job here. If you uploaded a multi-layer file and expected all layers out in one click, check the layer pick in the job: exports take one chosen layer at a time. Run one job per layer, and tick each one off a list as you go.
Field Types Changed in Small Ways
A whole-number field can land as a decimal field, or a date can land as text, when the source format was vague about types. For most work this is harmless. If a join or a query depends on the type, check the field list in the report for the fields that matter, and fix the type in your GIS program after the move.
The File Got Very Large
A database file holds indexes and free space from past edits, so it can grow past the raw size of the data. If size matters for sending, export a fresh copy — a clean export is most often smaller than a much-edited master. Do not delete the master to save space; disk is cheap, lost data is not.
What the Plans Allow
You can start free. The Free plan gives you 5 conversions a month, with one file at a time and a size limit of 25 MB per file. That is enough to test a multi-layer city project on real data and check the result with care.
Starter costs $9 a month. It gives you 200 conversions a month, files up to 500 MB, and batch jobs of up to 10 files at once. Pro costs $19 a month. It gives you 1,000 conversions a month, files up to 5 GB, batch jobs of up to 25 files, and API access for work you run on a schedule. You can review the plans if you convert layers every week before you pick.
All plans work the same way at the core. You get a map preview, feature counts in and out, and a clear report if a file has a fault. Your files are kept for 72 hours so you can download them again, and then they are deleted.
Frequently Asked Questions
Is a GeoPackage just a ZIP with a new name?
No. It is a database file, not a packed set of files. You do not unzip it. Your GIS program opens it and reads the tables inside. That is why parts cannot go missing: there are no parts.
Can Excel or a browser open a GeoPackage?
Not in a useful way. It is a GIS format. Open it in QGIS or ArcGIS, or convert a layer to GeoJSON for the web, or to CSV with WKT geometry for a spreadsheet. The converter on this site writes CSV too, with the shape stored as text in one column.
How many layers can one GeoPackage hold?
Far more than most projects need — dozens or hundreds of layers fit in one file. The practical limit is sense, not tech: a file with 200 layers needs good names and a note, or no one can find anything in it.
Does a GeoPackage store its coordinate system?
Yes. The system is stored in the file itself, for each layer. There is no .prj sidecar to lose. Each layer can even hold its own system, though a shared system across layers is the cleaner habit for a master file.
Should GeoPackage replace all my Shapefiles?
As the working master, for most teams, yes. As the only format, no. Offices will ask for Shapefiles for years yet, and the web wants GeoJSON. Keep the master in GeoPackage and export copies. That gives you one true file and no fights about formats.
Final Checklist
Run through this short list before you share your file:
- Each source layer converted with counts checked, one at a time.
- Long field names are whole in the GeoPackage.
- All layers share one coordinate system, or each system's name is noted.
- The master file is named and noted as the master.
- Exports for web, old tools, and Earth are made as copies, not by editing the master.
If each point passes, your file is ready to use.
References
- https://www.ogc.org/standards/geopackage — The OGC GeoPackage standard page. It defines the format as an open SQLite-based standard for geospatial data.
- https://www.usgs.gov/programs/national-geospatial-program/national-map — The USGS National Map program page, an example of official geospatial data work at national scale.
- https://www.data.gov/ — Data.gov, the U.S. government open data home, where many datasets are offered in GeoPackage and other GIS formats.