Fork me on GitHub
Visit the OGC
GeoPackage

An Open Format for Geospatial Information

GeoPackage is an open, standards-based, platform-independent, portable, self-describing, compact format for transferring geospatial information.

The GeoPackage specification describes a set of conventions for storing the following within an SQLite database:

  • vector features
  • tile matrix sets of imagery and raster maps at various scales
  • schema
  • metadata
  • extensions

These capabilities are built on a common base and an extension Mechanism is described to provide implementors a way to include additional functionality in their GeoPackages.

Since a GeoPackage is a database, it supports direct use, meaning that its data can be accessed and updated in a "native" storage format without intermediate format translations. GeoPackages are interoperable across all enterprise and personal computing environments, and are particularly useful on mobile devices like cell phones and tablets in communications environments with limited connectivity and bandwidth.

Official Standards Information
For all official, normative information on the GeoPackage standard, including PDF format download, see the OGC standards program GeoPackage page.
OGC GeoPackage tile sample
The OGC GeoPackage sample data used for the Plugfest was created by the US Army Engineer Research and Development Center (ERDC). The Python scripts used to create this GeoPackage can be found at https://github.com/GitHubRGI/geopackage-python. The ERDC Whitehorse GeoPackage can be found below.


 

Implementations

GDAL

  • GDAL is an open source C library to translate data formats, used practically everywhere. It supports GeoPackage Features as of version 1.11.0. Tiles support was recently developed and will be available in GDAL 2.0. See the GDAL GeoPackage vector and raster documentation for more information.

Luciad

QGIS

  • QGIS is the most used open source desktop GIS. It can read and write GeoPackage Features as of version 2.10.1 based on GDAL/OGR. GeoPackage Tiles will be available as soon as GDAL version 2.x is inluded in a future release.

Esri

  • Esri's GIS software is the most recognized in the world, and their ArcGIS for Desktop 10.2.2 and above support reading and writing GeoPackage Features. ArcGIS 10.3 for Desktop adds reading and writing GeoPackage Tiles. ArcGIS Runtime SDK's for Android and Java 10.2.4 and above support reading and writing GeoPackage Features, and reading GeoPackage Tiles. ArcGIS Pro version 1.1 supports reading GeoPackage Features.

National Geospatial-Intelligence Agency

Envitia MapLink

  • Envitia's latest release of MapLink Pro, a suite of powerful SDK's, enables viewing of GeoPackage Tiles and Features, and can also package both on the fly through a Web Processing Service (WPS).

SpatiaLite

  • GeoPackage is supported in SpatiaLite as of version 4.2.0. SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.

GeoServer

  • GeoServer, an open source Java Server implementing WMS, WFS, WCS and WPS makes available a GeoPackage plugin that can handle both Tiles and Features. It can be the source of data for GeoServer, serving the data in the GeoPackage as a OGC web standards. GeoServer can also generate GeoPackages in a variety of ways (WMS or WFS output, or a WPS process). The plugin is still a 'community module', so it is unsupported and only available as a nightly build in the community section.

Safe Software

  • FME Desktop and FME Server both support reading and writing GeoPackage vectors in their latest version. Their next version will support GeoPackage tiles.

GeoTools

  • GeoTools, an open source Java-based geospatial library, supports GeoPackage Tiles and Features as of version 11.0. Recent improvements also add support for GeoPackage R-Trees.

TerraGo

Engineer Research and Development Center (ERDC)

OpenJUMP PLUS

  • OpenJUMP PLUS is a Java-based desktop GIS, which can read vector data from OGC GeoPackage data files. See this blog post for documentation on how to read a GeoPackage.

Skyline Software Systems

Compusult

  • Compusult uses GeoPackage extensively across its geospatial management tools. Specifically, GeoPackage is used within GO Mobile, Compusult's widely used mobile app. As an integral part of its core functionality, GO Mobile provides read and write access to tiles and features. Compusult extends the functionality of GeoPackage by implementing several extensions that support styling, simplification, revisioning, elevation and relational metadata. Through Web Enterprise Suite's GeoPackaging Service, GeoPackages can be easily generated from a variety or sources including WMS, WMTS, KML, imagery, geodatabase, shapefile, etc. Compusult's GO Mobile, using GeoPackage, is currently deployed in the field with multiple customers covering several different industries.

ili2gpkg - INTERLIS 2-loader for GeoPackage

  • ili2gpkg is a commandline tool that converts between the Swiss INTERLIS geospatial data exchange format to and from GeoPackage (vector). It translates INTERLIS 2 data model definitions to a GeoPackage schema, loads INTERLIS 2 data into an GeoPackage database, and extracts INTERLIS 2 data from a GeoPackage database.

Carmenta

  • Carmenta supports reading vector data and raster tiles in GeoPackage standard in their Carmenta Server and Carmenta Engine products on Windows, Linux and Android.

Pitney Bowes Software

    Pitney Bowes Software adopts the OGC GeoPackage specification across the LI Suite as of February 2016
  • MapInfo Pro and MapInfo Pro Advanced added support for reading, editing, and creating GeoPackage Feature Tables as of the 15.2.2 release in February 2016.
  • Spectrum Spatial Location Intelligence Module (LIM) added read support for Feature Tables in the Spectrum 10 SP 1 release for Windows and Linux and added support for editing of GeoPackage Feature tables in the v11 release in February 2016 release.
  • MapXtreme is a developer SDK for Microsoft .NET integration and added support for reading, editing, and creating GeoPackage Feature Tables as of the 8.0 release in February 2016.

 Sample Data

 Latest News

Land Information New Zealand LINZ Data Service (LDS)

  • "There are over half a billion features of New Zealand topography, hydrography, place name and cadastral data that can be downloaded in the GeoPackage format. Our testing has shown the format to be very good at handling large datasets."
  • press release

Technology Test Data Set

  • generated with GDAL (with -dev version to include spatial index support) thanks to Even Rouault
  • includes all geometry types supported by OGR (2d and 3d), all data types supported by OGR & GPKG, null properties, null geometries, a SRS different from the 3 required ones
  • also available is a Python script to generate this GeoPackage

Simple Sewers test data set

Haiti OpenStreetMap tiles and point features

Geonames data for Belgium

ERDC Whitehorse GeoPackage

This GeoPackage contains a raster tile pyramid that was created with free imagery obtained from Geomatics Yukon and covers an approximately 30 square-kilometer area centered on the City of Whitehorse. It uses the Web Mercator (EPSG:3857) coordinate reference system, 256x256 pixel tiles, contains zoom levels 11-18, and is 110.8MB in size.

 

 
 
 

FAQ

Q How did GeoPackage come about?

A It was designed and prototyped following a multi-year, open process of requirements testing and public input.


Q How do I model multiple geometries in the same feature?

A See the modeling guidelines page.


Q Can GeoPackage be extended?

A It is designed for extension. If you need more than the core GeoPackage feature set, you may submit an issue at the issue tracker. In addition, you may join OGC's open process to standardize community-tested enhancements. For more information on the standards working group, go to http://www.opengeospatial.org/projects/groups/geopackageswg.


Q Does GeoPackage replace Shapefile?

A It could but it doesn’t have to. If all you need is simple exchange and display then GeoPackage may be overkill and something like GeoJSON may be more appropriate. If you are looking for database capabilities like random access and querying then GeoPackage is a platform-independent, vendor-independent choice. GeoPackage was carefully designed this way to facilitate widespread adoption and use of a single simple file format by both commercial and open-source software applications — on enterprise production platforms as well as mobile hand-held devices.


Q What is the intended content model for the metadata tables?

A We deliberately left this open-ended. We expect that communities of interest will produce profiles of GeoPackage that will specify the metadata (content and format) appropriate for their domain.


Q How are GeoPackage files shared between apps on iOS and Android devices?

A OGC does not yet have a methodology or best practice for sharing files between apps on mobile devices. On Android there are a couple of different options. With some of the newer updates, Android has some interesting security constraints. There could be a nice solution using the ContentProvider API.

On the iPhone, the security issues of the device cause a lot of problems for cross-app file sharing. Inherently, the device does not want applications to share data except in very narrowly defined ways. So data sharing between apps is not feasible at this time.


Q What were the reasons to go with SQLite, when OGC has invested heavily in PostGIS?

A OGC has not invested in PostGIS, rather PostGIS implements OGC standards. PostGIS is just like any other RDBMS implementation of the Simple Features spec. The primary use case for designing GeoPackage was mobile device use, and that's why SQLite was chosen as a platform. In this case OGC as an organization is specifying a technology. This is unusual for OGC and the decision was not made lightly, but practicality and ease of implementation won out over standards purity. And we are happy to say we have yet to get any negative feedback on this decision -- probably because SQLite is considered more like a library than a standalone application.


Q What is the relationship between GeoPackage and SpatiaLite?

A SpatiaLite was a major influence on the vector portions of GeoPackage but after extensive discussions, the working group chose to diverge from the SpatiaLite format in a few subtle ways. SpatiaLite now supports GeoPackage as of version 4.2.0.


Q Why does GeoPackage use a different Well-Known Binary (WKB) encoding than PostGIS or SpatiaLite?

A The original OGC/ISO standard for WKB does not contain all of the information we wanted to store. In response, both PostGIS and SpatiaLite developed their own ad hoc extensions. After much deliberation, the Standards Working Group (SWG) agreed not to standardize on either of them. Instead, the SWG decided to add additional information to the header so that standard WKB parsers/marshalers could be used for the bulk of the geometry.


Q What is the relationship between GeoPackage and MBTiles?

A MBTiles was a major influence on tile support in GeoPackage. In addition to being an international standard, GeoPackage differs from MBTiles in a few ways.

  • MBTiles only supports tiles in the Spherical Mercator projection. While this is the default in GeoPackage, other projections are supported through an extension.
  • MBTiles only supports a single tileset in a file. GeoPackage supports multiple tile sets in a single file, as well as feature data and metadata.
  • The two specifications use a different convention for tile numbering.