/*
* This file is part of JGrasstools (http://www.jgrasstools.org)
* (C) HydroloGIS - www.hydrologis.com
*
* JGrasstools is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.jgrasstools.dbs.spatialite.jgt;
import org.jgrasstools.dbs.compat.ASpatialDb;
import org.jgrasstools.dbs.compat.ImportExportUtils;
import org.jgrasstools.dbs.spatialite.ESpatialiteGeometryType;
/**
* Import and export utilities for JGrasstools.
*
* @author Andrea Antonello (www.hydrologis.com)
*/
public class JGTImportExportUtils {
/**
* Import a shapefile into the database using a temporary virtual table.
*
* @param db the database.
* @param tableName the name for the new table.
* @param shpPath the shp to import.
* @param encoding the encoding. If <code>null</code>, UTF-8 is used.
* @param srid the epsg code for the file.
* @param geometryType the geometry type of the file.
* @throws Exception
*/
public static void importShapefileThroughVirtualTable( final ASpatialDb db, final String tableName, final String shpPath,
final String encoding, final int srid, final ESpatialiteGeometryType geometryType ) throws Exception {
JGTTransactionExecuter transactionExecuter = new JGTTransactionExecuter(db){
@Override
public void executeInTransaction() {
try {
ImportExportUtils.executeQueries(db, tableName, shpPath, encoding, srid, geometryType);
} catch (Exception e) {
e.printStackTrace();
}
}
};
transactionExecuter.execute();
}
public static void main( String[] args ) throws Exception {
String dbPath = "/home/hydrologis/data/naturalearth/ne_10m_admin_1_states_provinces/test.sqlite";
String path = "/home/hydrologis/data/naturalearth/ne_10m_admin_1_states_provinces/ne_10m_admin_1_states_provinces.shp";
try (SpatialiteDb db = new SpatialiteDb()) {
if (!db.open(dbPath)) {
db.initSpatialMetadata(null);
}
importShapefileThroughVirtualTable(db, "admiin_states", path, "UTF-8", 4326, ESpatialiteGeometryType.MULTIPOLYGON_XY);
}
}
}