From c6d666b64e226acfae9f98872ba7d7942e68f238 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Sat, 24 May 2008 14:40:09 +0800 Subject: [PATCH] update for EOFM-104 --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java | 75 ++++++++++++++++++++----------------- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java | 5 ++ xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java | 5 ++ 3 files changed, 50 insertions(+), 35 deletions(-) diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java index 2f1eeb6..93e587c 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java @@ -20,6 +20,7 @@ import org.geotools.data.FeatureWriter; import org.geotools.data.Transaction; import org.geotools.data.shapefile.ShapefileDataStore; +import org.geotools.data.shapefile.indexed.IndexedShapefileDataStore; import org.geotools.feature.AttributeTypeFactory; import org.geotools.feature.Feature; import org.geotools.feature.FeatureType; @@ -160,8 +161,12 @@ } else { // ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); + /* ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(), true, Charset.forName("UTF-8")); + */ + ShapefileDataStore shapefileDataStore = new IndexedShapefileDataStore(sfile.toURI().toURL(), + null, true, true, IndexedShapefileDataStore.TREE_QIX, Charset.forName("UTF-8")); shapefileDataStore.createSchema(featureType); writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT); featuresWriterContext.put(featureType.getTypeName(), writer); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java index 8bba137..8b2be56 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java @@ -2,14 +2,14 @@ import java.io.File; import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.net.MalformedURLException; +import java.nio.charset.Charset; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.nio.charset.Charset; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -19,6 +19,7 @@ import org.geotools.data.FeatureWriter; import org.geotools.data.Transaction; import org.geotools.data.shapefile.ShapefileDataStore; +import org.geotools.data.shapefile.indexed.IndexedShapefileDataStore; import org.geotools.feature.AttributeTypeFactory; import org.geotools.feature.Feature; import org.geotools.feature.FeatureType; @@ -50,7 +51,7 @@ private String dataOut = null; - private HashMap<String, ArrayList<Feature> > featuresContext = new HashMap<String, ArrayList<Feature> >(); + private HashMap<String, ArrayList<Feature>> featuresContext = new HashMap<String, ArrayList<Feature>>(); private HashMap<String, FeatureWriter> featuresWriterContext = new HashMap<String, FeatureWriter>(); private PessimisticMapWrapper txFeaturesContext; @@ -111,26 +112,26 @@ { if (!txFeaturesContext.isEmpty()) { - logger.debug("Transaction size = " + txFeaturesContext.size()); + logger.debug("Transaction size = " + txFeaturesContext.size()); //txFeaturesContext.commitTransaction(); - } else - { - logger.debug("Transaction is empty."); - } + } else + { + logger.debug("Transaction is empty."); + } - if (!featuresContext.isEmpty()) - { - updateDataStore(); - } + if (!featuresContext.isEmpty()) + { + updateDataStore(); + } } public void rollbackTransaction() { //txFeaturesContext.rollbackTransaction(); - if (!featuresContext.isEmpty()) - { - updateDataStore(); - } + if (!featuresContext.isEmpty()) + { + updateDataStore(); + } } private void updateDataStore() @@ -146,17 +147,20 @@ logger.debug("Begin Save shapefile:" + sfile.toURI()); FeatureWriter writer; - if(featuresWriterContext.containsKey(featureType.getTypeName())) + if (featuresWriterContext.containsKey(featureType.getTypeName())) { - writer = featuresWriterContext.get(featureType.getTypeName()) ; - } - else + writer = featuresWriterContext.get(featureType.getTypeName()); + } else { - ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(), - true, Charset.forName("UTF-8")); - shapefileDataStore.createSchema(featureType); - writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT); - featuresWriterContext.put(featureType.getTypeName() , writer); + /* + ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(), + true, Charset.forName("UTF-8")); + */ + ShapefileDataStore shapefileDataStore = new IndexedShapefileDataStore(sfile.toURI().toURL(), + null, true, true, IndexedShapefileDataStore.TREE_QIX, Charset.forName("UTF-8")); + shapefileDataStore.createSchema(featureType); + writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT); + featuresWriterContext.put(featureType.getTypeName(), writer); } ArrayList<Feature> features = featuresContext.get(featureType); @@ -197,7 +201,8 @@ return dataOut; } - public void closeFeatureWriter() throws IOException { + public void closeFeatureWriter() throws IOException + { for (FeatureWriter featureWriter : this.featuresWriterContext.values()) { @@ -253,13 +258,13 @@ Envelope extent = TPCLIDConverter.convertTpclIdToEnvelope(tpclid); Geometry geom = geometryFactory.createLinearRing(new Coordinate[] - { - TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMinY())), - TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMaxX(), extent.getMinY())), - TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMaxX(), extent.getMaxY())), - TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMaxY())), - TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMinY())), - }); + { + TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMinY())), + TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMaxX(), extent.getMinY())), + TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMaxX(), extent.getMaxY())), + TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMaxY())), + TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMinY())), + }); return featureType.create(new Object[]{ geom, @@ -275,7 +280,7 @@ } return null; } - + public Feature createFeature2(FeatureType featureType, Element element) throws IllegalAttributeException { DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance(); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java index 586cf92..1be632b 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java @@ -23,6 +23,7 @@ import org.geotools.data.FeatureWriter; import org.geotools.data.Transaction; import org.geotools.data.shapefile.ShapefileDataStore; +import org.geotools.data.shapefile.indexed.IndexedShapefileDataStore; import org.geotools.feature.Feature; import org.geotools.feature.FeatureType; import org.geotools.feature.IllegalAttributeException; @@ -203,8 +204,12 @@ writer = featuresWriterContext.get(featureType.getTypeName()); } else { + /* ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(), true, Charset.forName("UTF-8")); + */ + ShapefileDataStore shapefileDataStore = new IndexedShapefileDataStore(sfile.toURI().toURL(), + null, true, true, IndexedShapefileDataStore.TREE_QIX, Charset.forName("UTF-8")); shapefileDataStore.createSchema(featureType); writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT); featuresWriterContext.put(featureType.getTypeName(), writer); -- Gitblit v0.0.0-SNAPSHOT