xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java
@@ -1,6 +1,12 @@ package com.ximple.io.dgn7; import java.awt.geom.AffineTransform; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.CharBuffer; import java.nio.charset.CharacterCodingException; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import org.apache.log4j.Logger; @@ -178,11 +184,48 @@ val.append(temp[i]); } } else { byte[] strRaw = new byte[num * 2]; for (int i = 0; i < num; i++) { short charValue = raw[i + 31]; byte hi = (byte) (charValue >>> 8); byte lo = (byte) charValue; strRaw[i * 2] = hi; strRaw[i * 2 + 1] = lo; } try { Charset charsetBig5 = Charset.forName("Big5"); CharsetDecoder decoder = charsetBig5.newDecoder(); CharBuffer cb = decoder.decode(ByteBuffer.wrap(strRaw)); val.append(cb); } catch (CharacterCodingException e) { logger.warn(e.getMessage(), e); return val.toString(); } finally { // rawBuffer.position(pos); // rawBuffer.order(order); } } return val.toString(); } protected byte[] convertDBCSToUnicode(byte[] buffer) { byte[] charBuffer = new byte[4]; charBuffer[0] = (byte) ((byte) ((buffer[1] & 0xc0) >>> 6) | 0xc0); charBuffer[1] = (byte) (buffer[1] & 0x3f | 0x80); charBuffer[2] = (byte) ((byte) ((buffer[0] & 0xc0) >>> 6) | 0xc0); charBuffer[3] = (byte) (buffer[0] & 0x3f | 0x80); return charBuffer; } public Geometry toGeometry(GeometryFactory factory) { return factory.createPoint(getUserOrigin()); xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties
@@ -9,16 +9,19 @@ # Pattern output the caller's filename and line # log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n #log4j.appender.stdout.encoding=UTF-8 log4j.appender.logfile=org.apache.log4j.FileAppender log4j.appender.logfile.file=xjobcarrier.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n #log4j.appender.logfile.encoding=UTF-8 log4j.appender.remoteout=com.holub.log4j.RemoteAppender log4j.appender.remoteout.Port=8011 log4j.appender.remoteout.layout=org.apache.log4j.PatternLayout log4j.appender.remoteout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n #log4j.appender.remoteout.encoding=UTF-8 # Print messages of level INFO or above for examples log4j.logger.org.cavaness.quartzbook=INFO xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml
@@ -46,7 +46,7 @@ </entry> <entry> <key>CONVERTDB</key> <value>true</value> <value>false</value> </entry> <entry> <key>CONVERTFILE</key> xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java
@@ -72,7 +72,13 @@ { try { FeatureType ftype = createStrategy.createFeatureElement(getName()); StringBuilder sb= new StringBuilder(); sb.append(getName()); sb.append("_"); sb.append(element.getLevelIndex()); sb.append("_"); sb.append(element.getWeight()); FeatureType ftype = createStrategy.createFeatureElement(sb.toString()); return createStrategy.createFeature(ftype, element); } catch (SchemaException e) { xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java
@@ -82,7 +82,13 @@ { try { FeatureType ftype = createStrategy.createFeatureElement(getName()); StringBuilder sb= new StringBuilder(); sb.append(getName()); sb.append("_"); sb.append(element.getLevelIndex()); sb.append("_"); sb.append(element.getWeight()); FeatureType ftype = createStrategy.createFeatureElement(sb.toString()); return createStrategy.createFeature(ftype, element); } catch (SchemaException e) { xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java
@@ -56,7 +56,13 @@ { try { FeatureType ftype = createStrategy.createFeatureElement(getName()); StringBuilder sb= new StringBuilder(); sb.append(getName()); sb.append("_"); sb.append(element.getLevelIndex()); sb.append("_"); sb.append(element.getWeight()); FeatureType ftype = createStrategy.createFeatureElement(sb.toString()); return createStrategy.createFeature(ftype, element); } catch (SchemaException e) { xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java
@@ -10,6 +10,7 @@ import java.util.TreeMap; 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; @@ -158,7 +159,9 @@ writer = featuresWriterContext.get(featureType.getTypeName()); } else { ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); // ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); 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); @@ -280,6 +283,7 @@ Geometry geom = convertDecorator.toGeometry(geometryFactory); double angle = textElement.getRotationAngle(); String content = textElement.getText(); angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue(); if (geom != null) { @@ -291,7 +295,7 @@ textElement.getTextHeight(), textElement.getTextWidth(), angle, textElement.getText() content }); } else { xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java
@@ -9,6 +9,7 @@ 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; @@ -151,7 +152,8 @@ } else { ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); 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); xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java
@@ -11,6 +11,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Properties; import java.nio.charset.Charset; import org.apache.commons.digester.Digester; import org.apache.commons.digester.xmlrules.DigesterLoader; @@ -202,7 +203,8 @@ writer = featuresWriterContext.get(featureType.getTypeName()); } else { ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); 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);