本文整理汇总了Java中org.geotools.data.Transaction.commit方法的典型用法代码示例。如果您正苦于以下问题:Java Transaction.commit方法的具体用法?Java Transaction.commit怎么用?Java Transaction.commit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.geotools.data.Transaction
的用法示例。
在下文中一共展示了Transaction.commit方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: addFeature
import org.geotools.data.Transaction; //导入方法依赖的package包/类
/**
* Add a feature to the store.
*
* @param feature the feature to add.
*/
default public void addFeature( SimpleFeature feature) {
FeatureStoreInfo featureStoreInfo = getFeatureStoreInfo();
SimpleFeatureStore featureStore = featureStoreInfo.getFeatureStore();
if (featureStore != null) {
Transaction transaction = new DefaultTransaction("add");
featureStore.setTransaction(transaction);
try {
DefaultFeatureCollection fc = new DefaultFeatureCollection();
fc.add(feature);
featureStore.addFeatures(fc);
transaction.commit();
} catch (Exception eek) {
try {
transaction.rollback();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
示例2: makeLineLayer
import org.geotools.data.Transaction; //导入方法依赖的package包/类
private void makeLineLayer( IEpanetType[] types, File baseFolder, CoordinateReferenceSystem mapCrs )
throws MalformedURLException, IOException {
SimpleFeatureTypeBuilder b = new SimpleFeatureTypeBuilder();
String shapefileName = types[0].getShapefileName();
String typeName = types[0].getName();
b.setName(typeName);
b.setCRS(mapCrs);
b.add("the_geom", LineString.class);
for( IEpanetType type : types ) {
b.add(type.getAttributeName(), type.getClazz());
}
SimpleFeatureType tanksType = b.buildFeatureType();
ShapefileDataStoreFactory factory = new ShapefileDataStoreFactory();
File file = new File(baseFolder, shapefileName);
Map<String, Serializable> create = new HashMap<String, Serializable>();
create.put("url", file.toURI().toURL());
ShapefileDataStore newDataStore = (ShapefileDataStore) factory.createNewDataStore(create);
newDataStore.createSchema(tanksType);
Transaction transaction = new DefaultTransaction();
SimpleFeatureStore featureStore = (SimpleFeatureStore) newDataStore.getFeatureSource();
featureStore.setTransaction(transaction);
try {
featureStore.addFeatures(new DefaultFeatureCollection());
transaction.commit();
} catch (Exception problem) {
problem.printStackTrace();
transaction.rollback();
} finally {
transaction.close();
}
}
示例3: writeShapefile
import org.geotools.data.Transaction; //导入方法依赖的package包/类
private void writeShapefile(MemoryDataStore memoryDataStore, File outputFile) throws Exception {
SimpleFeatureSource featureSource = memoryDataStore.getFeatureSource(memoryDataStore.getTypeNames()[0]);
SimpleFeatureType featureType = featureSource.getSchema();
Map<String, java.io.Serializable> creationParams = new HashMap<String, java.io.Serializable>();
creationParams.put("url", DataUtilities.fileToURL(outputFile));
ShapefileDataStoreFactory factory = (ShapefileDataStoreFactory) FileDataStoreFinder.getDataStoreFactory("shp");
ShapefileDataStore dataStore = (ShapefileDataStore) factory.createNewDataStore(creationParams);
dataStore.setCharset(Charset.forName("UTF-8"));
dataStore.createSchema(featureType);
SimpleFeatureStore featureStore = (SimpleFeatureStore) dataStore.getFeatureSource(dataStore.getTypeNames()[0]);
Transaction transaction = new DefaultTransaction();
try {
SimpleFeatureCollection collection = featureSource.getFeatures();
featureStore.addFeatures(collection);
transaction.commit();
} catch (IOException e) {
try {
transaction.rollback();
throw new Exception("Failed to commit data to feature store", e);
} catch (IOException e2 ) {
logger.error("Failed to commit data to feature store", e);
throw new Exception("Transaction rollback failed", e2);
}
} finally {
transaction.close();
}
}
示例4: exportToShapefile
import org.geotools.data.Transaction; //导入方法依赖的package包/类
/**
* Export features to a new shapefile using the map projection in which
* they are currently displayed
*/
public static void exportToShapefile(DataStore newDataStore, FeatureCollection<SimpleFeatureType,SimpleFeature> featureCollection)/*,SimpleFeatureType ftype)*/ throws Exception {
// carefully open an iterator and writer to process the results
Transaction transaction = new DefaultTransaction();
FeatureWriter<SimpleFeatureType, SimpleFeature> writer = newDataStore.getFeatureWriter(newDataStore.getTypeNames()[0], transaction);
FeatureIterator<SimpleFeature> iterator = featureCollection.features();
try {
while( iterator.hasNext() ){
SimpleFeature feature = iterator.next();
SimpleFeature copy = writer.next();
//copy.setAttributes( feature.getAttributes() );
Geometry geometry = (Geometry) feature.getDefaultGeometry();
if(geometry!=null){
copy.setDefaultGeometry( geometry.buffer(0));
writer.write();
}else{
logger.warn("Warning:geometry null");
}
}
transaction.commit();
logger.info("Export to shapefile complete" );
} catch (Exception problem) {
problem.printStackTrace();
transaction.rollback();
logger.error("Export to shapefile failed",problem );
} finally {
writer.close();
iterator.close();
transaction.close();
}
}
示例5: write
import org.geotools.data.Transaction; //导入方法依赖的package包/类
public static <T> void write(File file,
Consumer<SimpleFeatureTypeBuilder> fun1,
BiConsumer<SimpleFeatureBuilder, T> fun2,
List<T> geometries) {
try {
SimpleFeatureTypeBuilder typeBuilder = new SimpleFeatureTypeBuilder();
typeBuilder.setName("MyFeatureType");
typeBuilder.setCRS(DefaultGeographicCRS.WGS84);
fun1.accept(typeBuilder);
SimpleFeatureType type = typeBuilder.buildFeatureType();
SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(type);
AtomicInteger id = new AtomicInteger(0);
List<SimpleFeature> geoms = geometries.stream().map(g -> {
fun2.accept(featureBuilder, g);
return featureBuilder.buildFeature(String.valueOf(id.getAndIncrement()));
}).collect(toList());
ShapefileDataStoreFactory datastoreFactory = new ShapefileDataStoreFactory();
Map<String, Serializable> params = newHashMap();
params.put("url", file.toURI().toURL());
params.put("create spatial index", Boolean.TRUE);
ShapefileDataStore datastore = (ShapefileDataStore) datastoreFactory.createNewDataStore(params);
datastore.createSchema(type);
Transaction transaction = new DefaultTransaction("create");
String typeName = datastore.getTypeNames()[0];
SimpleFeatureSource featureSource = datastore.getFeatureSource(typeName);
SimpleFeatureStore featureStore = (SimpleFeatureStore) featureSource;
SimpleFeatureCollection collection = new ListFeatureCollection(type, geoms);
featureStore.setTransaction(transaction);
featureStore.addFeatures(collection);
transaction.commit();
transaction.close();
datastore.dispose();
}
catch (IOException e) {
throw propagate(e);
}
}
示例6: SoilSealingAdministrativeUnit
import org.geotools.data.Transaction; //导入方法依赖的package包/类
/**
* Default constructor
*
* @param au
* @param geoCodingReference
* @param populationReference
* @throws IOException
*/
public SoilSealingAdministrativeUnit(String au, FeatureTypeInfo geoCodingReference,
FeatureTypeInfo populationReference) throws IOException {
if (!au.contains("_")) {
throw new IOException("Invalid Administrative Unit name");
}
this.geoCodingReference = geoCodingReference;
this.populationReference = populationReference;
this.name = au.split("_")[0];
this.parent = au.split("_")[1];
FeatureReader<SimpleFeatureType, SimpleFeature> ftReader = null;
Transaction transaction = new DefaultTransaction();
try {
final JDBCDataStore ds = (JDBCDataStore) geoCodingReference.getStore().getDataStore(null);
Filter nameFilter = ff.equals(ff.property("name"), ff.literal(this.name));
Filter parentFilter = ff.equals(ff.property("parent"), ff.literal(this.parent));
Filter queryFilter = ff.and(Arrays.asList(nameFilter, parentFilter));
Query query = new Query(geoCodingReference.getFeatureType().getName().getLocalPart(), queryFilter);
ftReader = ds.getFeatureReader(query, transaction);
while (ftReader.hasNext()) {
Feature feature = ftReader.next();
this.type = AuType.getType((Integer) feature.getProperty("type").getValue());
this.the_geom = (Geometry) feature.getDefaultGeometryProperty().getValue();
break;
}
} finally {
if (ftReader != null) {
ftReader.close();
}
transaction.commit();
transaction.close();
}
if (this.type == null || this.the_geom == null) {
throw new IOException("Invalid Administrative Unit name: no record found!");
}
switch (this.type) {
case MUNICIPALITY:
loadPopulationStatistics(this);
break;
case DISTRICT:
case REGION:
loadSubs(this);
break;
default:
break;
}
}
示例7: loadPopulationStatistics
import org.geotools.data.Transaction; //导入方法依赖的package包/类
/**
*
* @param soilSealingAdministrativeUnit
* @throws IOException
*/
private void loadPopulationStatistics(SoilSealingAdministrativeUnit soilSealingAdministrativeUnit) throws IOException {
FeatureReader<SimpleFeatureType, SimpleFeature> ftReader = null;
Transaction transaction = new DefaultTransaction();
try {
final JDBCDataStore ds = (JDBCDataStore) populationReference.getStore().getDataStore(null);
Filter auNameFilter = ff.equals(ff.property("au_name"), ff.literal(this.name));
Filter queryFilter = ff.and(Arrays.asList(auNameFilter));
Query query = new Query(populationReference.getFeatureType().getName().getLocalPart(), queryFilter);
ftReader = ds.getFeatureReader(query, transaction);
while (ftReader.hasNext()) {
Feature feature = ftReader.next();
Collection<Property> properties = feature.getProperties();
for (Property prop : properties) {
if (prop.getName().getLocalPart().startsWith("a_")) {
Object yearPopulationValue = prop.getValue();
if (yearPopulationValue != null) {
population.put(prop.getName().getLocalPart().split("a_")[1], ((BigDecimal) yearPopulationValue).intValue());
}
}
}
}
} finally {
if (ftReader != null) {
ftReader.close();
}
transaction.commit();
transaction.close();
}
}
示例8: collectionToShapeFile
import org.geotools.data.Transaction; //导入方法依赖的package包/类
/**
* <p>
* The easy way to create a shapefile from attributes and geometries
* </p>
* <p>
* <b>NOTE: this doesn't support date attributes</b>
* </p>
*
* @param shapeFilePath the shapefile name
* @param crs the destination crs
* @param fet the featurecollection
* @throws IOException
*/
public static boolean collectionToShapeFile( String shapeFilePath, CoordinateReferenceSystem crs,
SimpleFeatureCollection fet ) throws IOException {
// Create the file you want to write to
File file = null;
if (shapeFilePath.toLowerCase().endsWith(".shp")) { //$NON-NLS-1$
file = new File(shapeFilePath);
} else {
file = new File(shapeFilePath + ".shp"); //$NON-NLS-1$
}
ShapefileDataStoreFactory factory = new ShapefileDataStoreFactory();
Map<String, Serializable> create = new HashMap<String, Serializable>();
create.put("url", file.toURI().toURL());
ShapefileDataStore newDataStore = (ShapefileDataStore) factory.createNewDataStore(create);
newDataStore.createSchema(fet.getSchema());
if (crs != null)
newDataStore.forceSchemaCRS(crs);
Transaction transaction = new DefaultTransaction();
SimpleFeatureStore featureStore = (SimpleFeatureStore) newDataStore.getFeatureSource();
featureStore.setTransaction(transaction);
try {
featureStore.addFeatures(fet);
transaction.commit();
} catch (Exception problem) {
problem.printStackTrace();
transaction.rollback();
} finally {
transaction.close();
}
return true;
}
示例9: modifyFeatureAttribute
import org.geotools.data.Transaction; //导入方法依赖的package包/类
/**
* Modify the attributes of this feature.
*
* @param names the names of the attributes to modify.
* @param values the values to set.
* @return the new feature if the editing has been successful.
*/
default public SimpleFeature modifyFeatureAttribute( String[] names, Object[] values ) {
FeatureStoreInfo featureStoreInfo = getFeatureStoreInfo();
SimpleFeatureStore featureStore = featureStoreInfo.getFeatureStore();
if (featureStore != null) {
Transaction transaction = new DefaultTransaction("modify");
featureStore.setTransaction(transaction);
FilterFactory ff = CommonFactoryFinder.getFilterFactory(GeoTools.getDefaultHints());
Filter filter = ff.id(Collections.singleton(ff.featureId(getFeature().getID())));
try {
featureStore.modifyFeatures(names, values, filter);
transaction.commit();
SimpleFeature modifiedFeature = featureStore.getFeatures(filter).features().next();
return modifiedFeature;
} catch (Exception eek) {
try {
transaction.rollback();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
示例10: makePointLayer
import org.geotools.data.Transaction; //导入方法依赖的package包/类
private void makePointLayer( IEpanetType[] types, File baseFolder, CoordinateReferenceSystem mapCrs )
throws MalformedURLException, IOException {
SimpleFeatureTypeBuilder b = new SimpleFeatureTypeBuilder();
String shapefileName = types[0].getShapefileName();
String typeName = types[0].getName();
b.setName(typeName);
b.setCRS(mapCrs);
b.add("the_geom", Point.class);
for( IEpanetType type : types ) {
b.add(type.getAttributeName(), type.getClazz());
}
SimpleFeatureType tanksType = b.buildFeatureType();
ShapefileDataStoreFactory factory = new ShapefileDataStoreFactory();
File file = new File(baseFolder, shapefileName);
Map<String, Serializable> create = new HashMap<String, Serializable>();
create.put("url", file.toURI().toURL());
ShapefileDataStore newDataStore = (ShapefileDataStore) factory.createNewDataStore(create);
newDataStore.createSchema(tanksType);
Transaction transaction = new DefaultTransaction();
SimpleFeatureStore featureStore = (SimpleFeatureStore) newDataStore.getFeatureSource();
featureStore.setTransaction(transaction);
try {
featureStore.addFeatures(new DefaultFeatureCollection());
transaction.commit();
} catch (Exception problem) {
problem.printStackTrace();
transaction.rollback();
} finally {
transaction.close();
}
}
示例11: testTemporal
import org.geotools.data.Transaction; //导入方法依赖的package包/类
@Test
public void testTemporal()
throws CQLException,
IOException,
ParseException {
populate();
final Transaction transaction2 = new DefaultTransaction();
final Query query = new Query(
"geostuff",
CQL
.toFilter("BBOX(geometry,44,27,42,30) and start during 2005-05-16T20:32:56Z/2005-05-20T21:32:56Z and end during 2005-05-18T20:32:56Z/2005-05-22T21:32:56Z"),
new String[] {
"geometry",
"pid"
});
final FeatureReader<SimpleFeatureType, SimpleFeature> reader = dataStore.getFeatureReader(
query,
transaction2);
int c = 0;
while (reader.hasNext()) {
reader.next();
c++;
}
reader.close();
transaction2.commit();
transaction2.close();
assertEquals(
2,
c);
}
示例12: write
import org.geotools.data.Transaction; //导入方法依赖的package包/类
public void write(SimpleFeatureCollection obj, OutputStream output, SimpleFeatureType sft,
String layerId) throws IOException {
File shpFile = File.createTempFile("shpFile", ".shp");
ShapefileDataStoreFactory fact = new ShapefileDataStoreFactory();
Map<String, Serializable> params = new HashMap<String, Serializable>();
params.put(ShapefileDataStoreFactory.URLP.key, shpFile.toURI().toURL());
params.put(ShapefileDataStoreFactory.CREATE_SPATIAL_INDEX.key, Boolean.TRUE);
ShapefileDataStore shpDataStore = (ShapefileDataStore) fact.createNewDataStore(params);
shpDataStore.createSchema(sft);
SimpleFeatureStore store = (SimpleFeatureStore) shpDataStore.getFeatureSource(shpDataStore.getTypeNames()[0]);
Transaction transaction = new DefaultTransaction("create");
store.setTransaction(transaction);
store.addFeatures(obj);
transaction.commit();
ZipOutputStream os = new ZipOutputStream(output);
final String fileName = shpFile.getName().substring(0, shpFile.getName().lastIndexOf("."));
File[] shpFiles = new File(shpFile.getParent()).listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.contains(fileName);
}
});
for (File file : shpFiles) {
os.putNextEntry(new ZipEntry(layerId + file.getName().substring(file.getName().lastIndexOf("."))));
IOUtils.copy(new FileInputStream(file), os);
file.delete();
}
os.close();
output.flush();
}
示例13: exportGeometriesToShapeFile
import org.geotools.data.Transaction; //导入方法依赖的package包/类
/**
*
* @param geoms
* @param fileOutput
* @param geomType
* @param transform
* @throws IOException
* @throws SchemaException
*/
public static void exportGeometriesToShapeFile(final List<Geometry> geoms,
File fileOutput,String geomType,GeoTransform transform,
SimpleFeatureType featureType) throws IOException, SchemaException{
FileDataStoreFactorySpi factory = new ShapefileDataStoreFactory();
//Map map = Collections.singletonMap( "url", fileOutput.toURI().toURL() );
DataStore data = factory.createDataStore( fileOutput.toURI().toURL() );
boolean addAttr=true;
if(featureType==null){
featureType=DataUtilities.createType( "the_geom", "geom:"+geomType+",name:String,age:Integer,description:String" );
addAttr=false;
}
data.createSchema( featureType );
Transaction transaction = new DefaultTransaction();
FeatureWriter<SimpleFeatureType, SimpleFeature> writer = data.getFeatureWriterAppend(data.getTypeNames()[0], transaction);
SimpleFeatureBuilder featureBuilder=new SimpleFeatureBuilder(featureType);
GeometryFactory gb=new GeometryFactory();
try {
int fid=0;
for(final Geometry g:geoms){
Geometry clone=gb.createGeometry(g);
if(transform!=null)
clone=transform.transformGeometryGeoFromPixel(clone);
featureBuilder.add("the_geom");
featureBuilder.add(clone);
SimpleFeature sf=featureBuilder.buildFeature(""+fid++);
SimpleFeature sfout=writer.next();
sfout.setAttributes( sf.getAttributes() );
//setting attributes geometry
AttributesGeometry att=(AttributesGeometry) g.getUserData();
try{
if(att!=null&&addAttr){
String sch[]=att.getSchema();
for(int i=0;i<sch.length;i++){
Object val=att.get(sch[i]);
if(val.getClass().isArray()){
Object o=ArrayUtils.toString(val);
sfout.setAttribute(sch[i], o);
}else{
sfout.setAttribute(sch[i], val);
}
}
}
}catch(Exception e ){
logger.warn("Error adding attributes to geometry:"+e.getMessage());
}
sfout.setDefaultGeometry( clone);
writer.write();
}
transaction.commit();
logger.info("Export to shapefile complete:"+ fileOutput.getAbsolutePath());
} catch (Exception problem) {
problem.printStackTrace();
transaction.rollback();
logger.error("Export to shapefile failed",problem );
} finally {
writer.close();
transaction.close();
data.dispose();
}
}
示例14: exportToShapefileForceWGS84
import org.geotools.data.Transaction; //导入方法依赖的package包/类
public static void exportToShapefileForceWGS84(DataStore newDataStore, FeatureCollection<SimpleFeatureType,SimpleFeature> featureCollection)/*,SimpleFeatureType ftype)*/ throws Exception {
// carefully open an iterator and writer to process the results
Transaction transaction = new DefaultTransaction();
//CoordinateReferenceSystem crsOrig=featureCollection.getSchema().getCoordinateReferenceSystem();
//set wgs84 coordinates ref sys
SimpleFeatureType featureType = SimpleFeatureTypeBuilder.retype(featureCollection.getSchema(), DefaultGeographicCRS.WGS84);
newDataStore.createSchema(featureType);
FeatureWriter<SimpleFeatureType, SimpleFeature> writer = newDataStore.getFeatureWriter(newDataStore.getTypeNames()[0], transaction);
//create the transformation
MathTransform trans=CRS.findMathTransform(CRS.parseWKT(WKTString.WKT3995_ESRI),DefaultGeographicCRS.WGS84);
FeatureIterator<SimpleFeature> iterator = featureCollection.features();
try {
while( iterator.hasNext() ){
SimpleFeature feature = iterator.next();
SimpleFeature copy = writer.next();
Geometry geometry = (Geometry) feature.getDefaultGeometry();
geometry=JTS.transform(geometry,trans);
if(geometry!=null){
copy.setDefaultGeometry( geometry.buffer(0));
writer.write();
}else{
logger.warn("Warning:geometry null");
}
}
transaction.commit();
logger.info("Export to shapefile complete" );
} catch (Exception problem) {
problem.printStackTrace();
transaction.rollback();
logger.error("Export to shapefile failed",problem );
} finally {
writer.close();
iterator.close();
transaction.close();
}
}
示例15: writeShapefile
import org.geotools.data.Transaction; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
public static void writeShapefile(EnsembleDeLiens liens, String file) throws SchemaException, IOException {
ShapefileDataStore store = new ShapefileDataStore(new File(file).toURI().toURL());
String specs = "the_geom:LineString,linkId:Integer,edgeId:Integer,refId:Integer,compId:Integer,evalLink:Double,surfDist:Double,exact:Double,compl:Double"; //$NON-NLS-1$
SimpleFeatureType type = DataUtilities.createType("Link", specs);
store.createSchema(type);
FeatureStore<SimpleFeatureType, SimpleFeature> featureStore = (FeatureStore<SimpleFeatureType, SimpleFeature>) store.getFeatureSource("Link");
Transaction t = new DefaultTransaction();
DefaultFeatureCollection collection = new DefaultFeatureCollection("coll",type);
int linkId = 1;
int edgeId = 1;
GeometryFactory factory = new GeometryFactory();
for (Lien feature : liens) {
for (Arc edge : feature.getArcs()) {
Lien l = (Lien) edge.getCorrespondant(0);
List<Object> liste = new ArrayList<Object>(5);
IFeature source = l.getObjetsRef().get(0);
IFeature target = l.getObjetsComp().get(0);
IDirectPosition sourcePosition = source.getGeom().centroid();
IDirectPosition targetPosition = target.getGeom().centroid();
liste.add(factory.createLineString(new Coordinate[]{new Coordinate(sourcePosition.getX(), sourcePosition.getY()), new Coordinate(targetPosition.getX(), targetPosition.getY())}));
liste.add(new Integer(linkId));
liste.add(new Integer(edgeId));
liste.add(source.getAttribute("buildingId"));
liste.add(target.getAttribute("buildingId"));
liste.add(feature.getEvaluation());
liste.add(feature.getDistanceSurfacique());
liste.add(feature.getExactitude());
liste.add(feature.getCompletude());
SimpleFeature simpleFeature = SimpleFeatureBuilder.build(type, liste.toArray(), String
.valueOf(edgeId++));
collection.add(simpleFeature);
}
linkId++;
}
featureStore.addFeatures(collection);
t.commit();
t.close();
store.dispose();
}