When working with geographic data in QGIS, several file formats can be used to store vector layers. Two formats are particularly common: Shapefile and GeoPackage.
Shapefile is a historical format that has been widely used since the 1990s. GeoPackage, a more recent format, was designed to overcome the limitations of Shapefile.
In this article, we will look at the differences between these two formats and when to use each of them.
1. Shapefile: A Historical Format
The Shapefile format was developed by Esri in the early 1990s. For many years, it was the standard format for exchanging geographic data.
A Shapefile is not a single file but a group of files.
For example:
routes.shp
routes.shx
routes.dbf
routes.prj
These files must remain together for the layer to function correctly.
2. Limitations of the Shapefile Format
Despite its popularity, the Shapefile format has several important limitations.
Field name length
Field names are limited to 10 characters.
Number of fields
The number of fields is limited to 255.
Maximum file size
The maximum size of a file is approximately 2 GB.
Single geometry type
A Shapefile can only contain one geometry type:
- points
- lines
- or polygons.
Encoding issues
DBF files may cause character encoding problems, especially with accented characters.
3. GeoPackage: A Modern Format
GeoPackage (GPKG) is a more recent format based on a SQLite database.
It was developed by the Open Geospatial Consortium.
Unlike Shapefile, a GeoPackage is a single file.
Example:
data.gpkg
This file can contain:
- multiple vector layers
- raster data
- attribute tables.
4. Advantages of GeoPackage
GeoPackage provides several important advantages.
Single file
All data is stored in one file.
Longer field names
Field names are not limited to 10 characters.
Multiple layers
A GeoPackage can contain multiple layers.
Open standard
GeoPackage is an OGC standard, widely supported by GIS software.
Better encoding support
Character encoding problems are much less common.
5. Quick Comparison
| Shapefile | GeoPackage |
|---|---|
| legacy format | modern format |
| multiple files | single file |
| limited field names | longer field names |
| limited size | more flexible size |
| single geometry type | multiple layers supported |
6. Using These Formats in QGIS
In QGIS, it is often recommended to use GeoPackage to store data.
Shapefile is still useful for:
- exchanging data with older software
- certain legacy administrative formats.
7. Technical Limitations of Shapefile
Shapefile is still widely used today, but it has several technical limitations inherited from its design in the 1990s.
Here are some key constraints.
| Limitation | Shapefile |
|---|---|
| field name length | 10 characters maximum |
| number of fields | 255 |
| maximum file size | about 2 GB |
| data storage | multiple files |
| character encoding | sometimes problematic |
| date management | limited |
| multiple layers in one file | not possible |
Example
A Shapefile named:
urban_transport_network.shp
may include the following files:
urban_transport_network.shp
urban_transport_network.shx
urban_transport_network.dbf
urban_transport_network.prj
If one of these files is deleted or moved, the layer may no longer work properly.
Common Problem
In a Shapefile, a field named:
population_total
will automatically be truncated to:
population
This can lead to confusion or errors during analysis.
8. Why GeoPackage Is Often a Better Choice
GeoPackage was designed to overcome these limitations.
With a GeoPackage:
- all data is stored in a single file
- multiple layers can be included
- field names can be longer
- data management is more robust.
Example:
project_data.gpkg
This file may contain:
- roads
- buildings
- administrative boundaries
- attribute tables.
9. Why Does a Shapefile Contain Multiple Files?
Many users are surprised to learn that a Shapefile is not a single file but a collection of files.
A Shapefile typically includes at least three main files:
| File | Role |
|---|---|
| .shp | stores geometry |
| .shx | geometry index |
| .dbf | attribute table |
Other files may also be present:
| File | Role |
|---|---|
| .prj | coordinate system |
| .cpg | character encoding |
Example:
roads.shp
roads.shx
roads.dbf
roads.prj
roads.cpg
All these files must remain in the same folder with the same name.
If one of them is missing, the layer may stop working properly.
10. Why GeoPackage Is Simpler
With GeoPackage, all information is stored in one file.
Example:
data.gpkg
This file can contain:
- multiple vector layers
- raster datasets
- attribute tables.
This greatly simplifies data management.
Tip
If you receive a Shapefile, it is recommended to copy all associated files (.shp, .shx, .dbf, .prj, etc.).
In QGIS, you can easily convert a Shapefile into a GeoPackage:
Right-click the layer → Export → Save Features As…
Then choose GeoPackage as the format.
11. A Historical Curiosity About Shapefile
The Shapefile format was created in the early 1990s by Esri. At that time, computing constraints were very different:
- hard drives were small
- operating systems had strict filename limits
- spatial databases were rare.
This explains why some Shapefile limitations still exist today.
Why Field Names Are Limited to 10 Characters
The attribute table of a Shapefile is stored in a DBF file, a format inherited from the dBase software widely used in the 1980s.
This format imposes several limitations:
- field names limited to 10 characters
- simple table structure
- limited data types.
Even though modern computers no longer have these constraints, these limits remain for compatibility reasons.
Why Shapefile Uses Multiple Files
The format was designed in a modular way:
- the .shp file stores geometry
- the .shx file stores the spatial index
- the .dbf file stores attributes.
At the time, this architecture helped optimize data reading on less powerful computers.
Why Shapefile Is Still Used
Despite its limitations, Shapefile remains very popular because:
- it is supported by almost all GIS software
- it is easy to exchange
- it has become a de facto standard in GIS.
However, for new projects, more modern formats such as GeoPackage are generally recommended.
FAQ
What is the maximum size of a Shapefile?
Approximately 2 GB.
Why does my Shapefile not open in QGIS?
This can happen if a required file (.shp, .shx, or .dbf) is missing.
Does GeoPackage replace Shapefile?
GeoPackage is now considered a more modern and flexible format, but Shapefile is still widely used for data exchange.
Conclusion
Shapefile remains a very common format, but it has several limitations inherited from its age.
GeoPackage is a more modern, flexible format that is better suited to current GIS projects.
In most cases, it is recommended to use GeoPackage as the primary data storage format in QGIS.