public class GeoPackage extends Object implements Closeable
Modifier and Type | Class and Description |
---|---|
static class |
GeoPackage.DataType |
Modifier and Type | Field and Description |
---|---|
static String |
DATA_COLUMN
Add this among a AttributeType user data, in order to force a particular
DataColumn
description for it. |
static String |
DATA_COLUMN_CONSTRAINTS |
static String |
DATA_COLUMNS |
static String |
EXTENSIONS |
protected static int |
GENERIC_GEOGRAPHIC_SRID |
protected static int |
GENERIC_PROJECTED_SRID |
static String |
GEOMETRY_COLUMNS |
static String |
GEOPACKAGE_CONTENTS |
static String |
METADATA |
static String |
METADATA_REFERENCE |
static String |
SCHEMA |
static String |
SKIP_REGISTRATION
Adding this key into a
PropertyType.getUserData() with a value of true will allow
creating tables without registering them as feature entries in the GeoPackage. |
static String |
SPATIAL_INDEX |
static String |
SPATIAL_REF_SYS |
static String |
TILE_MATRIX_METADATA |
static String |
TILE_MATRIX_SET |
protected GeoPkgGeomWriter.Configuration |
writerConfig |
Constructor and Description |
---|
GeoPackage()
Creates a new empty GeoPackage, generating a new file.
|
GeoPackage(File file)
Creates a GeoPackage from an existing file.
|
GeoPackage(File file,
SQLiteConfig config,
Map<String,Object> storeParams) |
GeoPackage(File file,
String user,
String passwd)
Creates a GeoPackage from an existing file specifying database credentials.
|
GeoPackage(File file,
String user,
String passwd,
boolean readOnly)
Creates a GeoPackage from an existing file specifying database credentials.
|
GeoPackage(JDBCDataStore dataStore)
Builds a GeoPackage from the given store (that has supposedly been created by the
GeoPkgDataStoreFactory) . |
Modifier and Type | Method and Description |
---|---|
void |
add(FeatureEntry entry,
SimpleFeatureCollection collection)
Adds a new feature dataset to the geopackage.
|
void |
add(FeatureEntry entry,
SimpleFeatureSource source,
Filter filter)
Adds a new feature dataset to the geopackage.
|
void |
add(TileEntry entry,
Tile tile)
Adds a tile to the geopackage.
|
static void |
addCRS(Connection cx,
int srid,
String srsName,
String organization,
int organizationCoordSysId,
String definition,
String description) |
void |
addCRS(CoordinateReferenceSystem crs,
String auth,
int srid)
Adds a crs to the geopackage, registering it in the spatial_ref_sys table.
|
void |
addCRS(int srid)
Adds an epsg crs to the geopackage, registering it in the spatial_ref_sys table.
|
protected static void |
addDefaultSpatialReferences(Connection cx) |
void |
addRange(String attribute,
Integer low,
Integer high,
List<String> q) |
void |
close()
Closes the geopackage database connection.
|
List<Entry> |
contents()
Returns list of contents of the geopackage.
|
void |
create(FeatureEntry entry,
SimpleFeatureType schema)
Creates a new feature entry in the geopackage.
|
void |
create(TileEntry entry)
Creates a new tile entry in the geopackage.
|
void |
createSpatialIndex(FeatureEntry e)
Create a spatial index
|
FeatureEntry |
feature(String name)
Looks up a feature entry by name.
|
protected FeatureEntry |
feature(String name,
Connection cx) |
List<FeatureEntry> |
features()
Lists all the feature entries in the geopackage.
|
DataSource |
getDataSource()
The database data source.
|
static SimpleDateFormat |
getDateFormat()
Returns a new instance of SimpleDateFormat with the default GeoPackage ISO formatting
|
<T extends GeoPkgExtension> |
getExtension(Class<T> extensionClass)
Returns the extension by class, or null if the extension is not supported by this
implementation
|
GeoPkgExtension |
getExtension(String name)
Returns the extension by name, or null if the extension is not supported by this
implementation
|
File |
getFile()
The underlying database file.
|
protected String |
getSpatialIndexName(FeatureEntry entry) |
int |
getTileBound(TileEntry entry,
int zoom,
boolean isMax,
boolean isRow)
Retrieve tile boundaries (min row, max row, min column and max column) for a particular zoom
level, available in the actual data
|
GeoPkgGeomWriter.Configuration |
getWriterConfiguration() |
boolean |
hasSpatialIndex(FeatureEntry entry)
Verifies if a spatial index is present
|
void |
init()
Initializes the geopackage database.
|
SimpleFeatureReader |
reader(FeatureEntry entry,
Filter filter,
Transaction tx)
Returns a reader for the contents of a feature dataset.
|
TileReader |
reader(TileEntry entry,
Integer lowZoom,
Integer highZoom,
Integer lowCol,
Integer highCol,
Integer lowRow,
Integer highRow)
Retrieve tiles within certain zooms and column/row boundaries.
|
Set<Identifier> |
searchSpatialIndex(FeatureEntry entry,
Double minX,
Double minY,
Double maxX,
Double maxY)
Searches a spatial index.
|
TileEntry |
tile(String name)
Looks up a tile entry by name.
|
List<TileEntry> |
tiles()
Lists all the tile entries in the geopackage.
|
SimpleFeatureWriter |
writer(FeatureEntry entry,
boolean append,
Filter filter,
Transaction tx)
Returns a writer used to modify or add to the contents of a feature dataset.
|
public static final String GEOPACKAGE_CONTENTS
public static final String GEOMETRY_COLUMNS
public static final String SPATIAL_REF_SYS
public static final String DATA_COLUMNS
public static final String TILE_MATRIX_METADATA
public static final String METADATA
public static final String METADATA_REFERENCE
public static final String TILE_MATRIX_SET
public static final String DATA_COLUMN_CONSTRAINTS
public static final String EXTENSIONS
public static final String SPATIAL_INDEX
public static final String SCHEMA
public static final String SKIP_REGISTRATION
PropertyType.getUserData()
with a value of true will allow
creating tables without registering them as feature entries in the GeoPackage. Used by
extensions to create extra feature tables that should be visible only by clients aware of the
specific extension intent and usage.public static final String DATA_COLUMN
DataColumn
description for it. It can be required to add more metadata, to force a mime type, or have
fine grained control over its constraintsprotected static final int GENERIC_GEOGRAPHIC_SRID
protected static final int GENERIC_PROJECTED_SRID
protected GeoPkgGeomWriter.Configuration writerConfig
public GeoPackage() throws IOException
IOException
public GeoPackage(File file) throws IOException
This constructor assumes no credentials are required to connect to the database.
IOException
public GeoPackage(File file, String user, String passwd) throws IOException
IOException
public GeoPackage(File file, String user, String passwd, boolean readOnly) throws IOException
IOException
public GeoPackage(JDBCDataStore dataStore)
GeoPkgDataStoreFactory)
. Used to get access to lower level methods and internals of the
GeoPackage.dataStore
- public GeoPackage(File file, SQLiteConfig config, Map<String,Object> storeParams) throws IOException
IOException
public GeoPkgGeomWriter.Configuration getWriterConfiguration()
public File getFile()
Note: this value may be null
depending on how the geopackage was initialized.
public DataSource getDataSource()
public void init() throws IOException
This method creates all the necessary metadata tables.
IOException
public void close()
The application should always call this method when done with a geopackage to prevent connection leakage.
close
in interface Closeable
close
in interface AutoCloseable
public void addCRS(int srid) throws IOException
This method will look up the srid in the local epsg database. Use #addCRS(CoordinateReferenceSystem, int)
to specify an explicit CRS, authority, code entry.
IOException
protected static void addDefaultSpatialReferences(Connection cx) throws SQLException
SQLException
public static void addCRS(Connection cx, int srid, String srsName, String organization, int organizationCoordSysId, String definition, String description) throws IOException
IOException
public void addCRS(CoordinateReferenceSystem crs, String auth, int srid) throws IOException
crs
- The crs to add.auth
- The authority code, example: epsgsrid
- The spatial reference system id.IOException
public List<FeatureEntry> features() throws IOException
IOException
public FeatureEntry feature(String name) throws IOException
name
- THe name of the feature entry.null
if no such entry exists.IOException
protected FeatureEntry feature(String name, Connection cx) throws SQLException, IOException
SQLException
IOException
public GeoPkgExtension getExtension(String name)
public <T extends GeoPkgExtension> T getExtension(Class<T> extensionClass)
public void create(FeatureEntry entry, SimpleFeatureType schema) throws IOException
The resulting feature dataset will be empty. The #writer(FeatureEntry, boolean,
Transaction)
method returns a writer object that can be used to populate the dataset.
entry
- Contains metadata about the feature entry.schema
- The schema of the feature dataset.IOException
- Any errors occurring while creating the new feature entry.public void add(FeatureEntry entry, SimpleFeatureCollection collection) throws IOException
entry
- Contains metadata about the feature entry.collection
- The simple feature collection to add to the geopackage.IOException
- Any errors occurring while adding the new feature dataset.public void add(FeatureEntry entry, SimpleFeatureSource source, Filter filter) throws IOException
entry
- Contains metadata about the feature entry.source
- The dataset to add to the geopackage.filter
- Filter specifying what subset of feature dataset to include, may be null
to specify no filter.IOException
- Any errors occurring while adding the new feature dataset.public SimpleFeatureWriter writer(FeatureEntry entry, boolean append, Filter filter, Transaction tx) throws IOException
entry
- The feature entry.append
- Flag controlling whether to modify existing contents, or append to the dataset.filter
- Filter determining what subset of dataset to modify, only relevant when
append set to false. May be null
to specify no filter.tx
- Transaction object, may be null
to specify auto commit transaction.IOException
public SimpleFeatureReader reader(FeatureEntry entry, Filter filter, Transaction tx) throws IOException
entry
- The feature entry.filter
- Filter Filter determining what subset of dataset to return. May be null
to specify no filter.tx
- Transaction object, may be null
to specify auto commit transaction.IOException
public static SimpleDateFormat getDateFormat()
public void createSpatialIndex(FeatureEntry e) throws IOException
e
- feature entry to create spatial index forIOException
public List<TileEntry> tiles() throws IOException
IOException
public TileEntry tile(String name) throws IOException
name
- THe name of the tile entry.null
if no such entry exists.IOException
public void create(TileEntry entry) throws IOException
entry
- The tile entry.IOException
public void add(TileEntry entry, Tile tile) throws IOException
entry
- The tile metadata entry.tile
- The tile.IOException
public TileReader reader(TileEntry entry, Integer lowZoom, Integer highZoom, Integer lowCol, Integer highCol, Integer lowRow, Integer highRow) throws IOException
entry
- the tile entrylowZoom
- low zoom boundaryhighZoom
- high zoom boundarylowCol
- low column boundaryhighCol
- high column boundarylowRow
- low row boundaryhighRow
- high row boundaryIOException
protected String getSpatialIndexName(FeatureEntry entry)
public boolean hasSpatialIndex(FeatureEntry entry) throws IOException
entry
- The feature entry.IOException
public Set<Identifier> searchSpatialIndex(FeatureEntry entry, Double minX, Double minY, Double maxX, Double maxY) throws IOException
entry
- The feature entry.minX
- Optional minimum x boundary.minY
- Optional minimum y boundary.maxX
- Optional maximum x boundary.maxY
- Optional maximum y boundary.IOException
public int getTileBound(TileEntry entry, int zoom, boolean isMax, boolean isRow) throws IOException
entry
- The tile entryzoom
- the zoom levelisMax
- true for max boundary, false for min boundaryisRow
- true for rows, false for columnsIOException
Copyright © 1996–2021 Geotools. All rights reserved.