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 reference implementation
The OGC GeoPackage reference implementation 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

OGC GeoPackage reference implementation

Luciad products with GeoPackage support

  • LuciadLightspeed: Geospatial software components (API) for developing high performance situational awareness applications and web services. Support for reading and writing GeoPackages in LuciadLightspeed V2013.1 and later, vector and raster supported
  • LuciadMobile: Geospatial software components (API) for developing mobile applications on Android. Support for reading, updating, and writing GeoPackages in LuciadMobile V2013.1 and later. Vector and raster supported. The free Luciad GeoPackage viewer is based on this product.
  • LuciadFusion: Data management, data fusion, OGC compliant server for large geospatial data sets. GeoPackage export support in LuciadFusion V2014.0 and later

Envitia MapLink

  • Envitia MapLink allows for viewing vector data and raster tiles stored in a GeoPackage, as well as packaging both through a Web Processing Service (WPS). Demonstrasted in OGC Testbed 10.

GDAL: the Swiss Army knife of open source geodata file formats

OpenJUMP PLUS reads GeoPackages

GeoTools

Esri ArcGIS

  • ArcGIS 10.2.2 for Desktop and Server support the 1.0 vector spec
  • ArcGIS Runtime SDKs for Java and Android (http://www.esri.com/software/arcgis/runtime/)
    • The ArcGIS Runtime SDKs for Java and Android support the use of the Geopackage OGC data format.
    • Runtime applications can read both Vectors (geometries with attributes) and Rasters from a local Geopackage file.
    • Runtime applications can edit (add, update, delete) Vector features in a Geopackage file.

SpatiaLite

GeoServer

  • GeoPackage Extension plugin brings in the ability to read and write GeoPackage files both as Vector Data Stores as well as Raster Data Stores. GeoPackage can be used as an output format for WFS GetFeature (creating one vector data layer) as well as WMS GetMap (creating one raster data layer). The GeoServer GeoPackage extension also allows to create a completely custom made GeoPackage with multiple layers, using the GeoPackage process.

Open Source GeoPackaging Web Processing Servers

  • WARNING: This code is experimental. It may not work, applications may break, and you may experience data loss. OGC has no knowledge or responsibility regarding whether they work properly and will not provide support for them. Please evaluate and contribute to the code.
  • Java-OpenMobility: Java GeoPackage and OWS Context library and client(s) developed under the OGC OWS-10 test-bed
  • GeoPackager: A Java-based GeoPackaging service with a WPS interface
  • OWS10 GeoPackaging Service: Originally developed by Cloudant as part of the OGC OWS10 geopackage experiment to create GeoPackages of vector data, and also to experiment with peer-to-peer geosynchronization.

 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 raster tile pyramid GeoPackage was created with free imagery obtained from Geomatics Yukon, and covers an approximately 30 square-kilometer area centered on the City of Whitehorse. The OGC GeoPackage Plugfest reference implementation uses the Web Mercator (EPSG:3857) coordinate reference system, 256x256 pixel tiles, contains zoom levels 11-18, and is 135.25MB 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 Can GeoPackage be extended?

A It is designed for extension. If you need more than the core GeoPackage feature set, join OGC's open process to standardize community-tested enhancements. Change requests may be submitted at http://www.opengeospatial.org/standards/cr. 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 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.