From d0b1e59bbf66c3c07cdc9ae241bd63d5da8128e4 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Tue, 12 Aug 2008 17:45:40 +0800 Subject: [PATCH] update for EOFM-144 --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java | 117 +++++++++++++++++++++++--------------- .gitignore | 2 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java | 2 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java | 2 4 files changed, 74 insertions(+), 49 deletions(-) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..be2f5df --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +xdgnjobs/target +xdgnjobs/ximple-spatialjob/target diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java index 28aa8e5..6cbcb65 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java @@ -266,7 +266,7 @@ srcPt[1] = p.y; at.transform(srcPt, 0, dstPt, 0, 1); - result.add(new Coordinate(dstPt[0], dstPt[1]), true); + result.add(new Coordinate(dstPt[0], dstPt[1]), false); } return result.toCoordinateArray(); diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java index f4e5c76..4061dde 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java @@ -191,7 +191,7 @@ for (int i = 0; i < size(); i++) { TextElement txtElm = (TextElement) get(i); - coords.add(txtElm.toAnchorCoordinates()); + coords.add(txtElm.toAnchorCoordinates(), false); } return factory.createMultiPoint(coords.toCoordinateArray()); } diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java index 542ba6b..096947f 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java @@ -1,32 +1,34 @@ package com.ximple.eofms.filter; -import java.util.TreeMap; -import java.util.List; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.List; +import java.util.TreeMap; import javax.swing.event.EventListenerList; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.geotools.feature.FeatureTypeBuilder; -import org.geotools.feature.FeatureType; -import org.geotools.feature.SchemaException; import org.geotools.feature.Feature; +import org.geotools.feature.FeatureType; +import org.geotools.feature.FeatureTypeBuilder; import org.geotools.feature.IllegalAttributeException; +import org.geotools.feature.SchemaException; -import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.Geometry; +import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.geom.CoordinateList; +import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.util.Assert; -import com.ximple.eofms.util.TWD97GeometryConverterDecorator; -import com.ximple.eofms.util.FeatureTypeBuilderUtil; import com.ximple.eofms.util.DefaultColorTable; -import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.eofms.util.FeatureTypeBuilderUtil; +import com.ximple.eofms.util.TWD97GeometryConverterDecorator; import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.UserAttributeData; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.GeometryConverter; import com.ximple.io.dgn7.TextElement; import com.ximple.io.dgn7.TextNodeElement; -import com.ximple.io.dgn7.GeometryConverter; +import com.ximple.io.dgn7.UserAttributeData; public class CreateMultiSymbolStrategy implements CreateFeatureTypeStrategy { @@ -96,22 +98,22 @@ convertDecorator.setConverter(txtElement); Geometry gobj = convertDecorator.toGeometry(geometryFactory); if (gobj != null) - feature = featureType.create(new Object[]{ - gobj, - fLinkage.getFsc(), - (long) fLinkage.getUfid(), - (short) fLinkage.getComponentID(), - (short) 0, - (short) txtElement.getLevelIndex(), - colorTable.getColorCode(txtElement.getColorIndex()), - (short) txtElement.getWeight(), - (short) txtElement.getLineStyle(), - (short) txtElement.getJustification(), - (float) txtElement.getTextHeight(), - (float) txtElement.getTextWidth(), - (float) angle, - sb.toString() - }); + feature = featureType.create(new Object[]{ + gobj, + fLinkage.getFsc(), + (long) fLinkage.getUfid(), + (short) fLinkage.getComponentID(), + (short) 0, + (short) txtElement.getLevelIndex(), + colorTable.getColorCode(txtElement.getColorIndex()), + (short) txtElement.getWeight(), + (short) txtElement.getLineStyle(), + (short) txtElement.getJustification(), + (float) txtElement.getTextHeight(), + (float) txtElement.getTextWidth(), + (float) angle, + sb.toString() + }); } else if (element instanceof TextNodeElement) { TextNodeElement nodeElement = (TextNodeElement) element; @@ -136,22 +138,22 @@ convertDecorator.setConverter(nodeElement); Geometry gobj = convertDecorator.toGeometry(geometryFactory); if (gobj != null) - feature = featureType.create(new Object[]{ - gobj, - fLinkage.getFsc(), - (long) fLinkage.getUfid(), - (short) fLinkage.getComponentID(), - (short) 0, - (short) nodeElement.getLevelIndex(), - colorTable.getColorCode(nodeElement.getColorIndex()), - (short) nodeElement.getWeight(), - (short) nodeElement.getLineStyle(), - (short) nodeElement.getJustification(), - (float) nodeElement.getTextNodeHeight(), - (float) nodeElement.getTextNodeLength(), - (float) angle, - sb.toString() - }); + feature = featureType.create(new Object[]{ + gobj, + fLinkage.getFsc(), + (long) fLinkage.getUfid(), + (short) fLinkage.getComponentID(), + (short) 0, + (short) nodeElement.getLevelIndex(), + colorTable.getColorCode(nodeElement.getColorIndex()), + (short) nodeElement.getWeight(), + (short) nodeElement.getLineStyle(), + (short) nodeElement.getJustification(), + (float) nodeElement.getTextNodeHeight(), + (float) nodeElement.getTextNodeLength(), + (float) angle, + sb.toString() + }); } else { logger.info("CreateMultiSymbolStrategy cannot conver " + element.toString() + "to Feature"); @@ -192,12 +194,33 @@ GeometryConverter converter = getConverter(); Geometry geom = null; - if (converter instanceof TextElement) + try { - geom = ((TextElement) converter).toAnchorGeometry(factory); - } else if (converter instanceof TextNodeElement) + if (converter instanceof TextElement) + { + geom = ((TextElement) converter).toAnchorGeometry(factory); + } else if (converter instanceof TextNodeElement) + { + geom = ((TextNodeElement) converter).toAnchorGeometry(factory); + } + } catch (ArrayStoreException e) { - geom = ((TextNodeElement) converter).toAnchorGeometry(factory); + logger.warn(e.getMessage(), e); + if (converter instanceof TextNodeElement) + { + TextNodeElement node = (TextNodeElement) converter; + CoordinateList pts = new CoordinateList(); + for (int i = 0; i < node.size(); i++) + { + TextElement txtElm = (TextElement) node.get(i); + Coordinate[] coords = txtElm.toAnchorCoordinates(); + logger.warn("-coords=[" + coords.length + "]"); + for (int j = 0; j < coords.length; j++) + { + logger.warn("[" + j + "]-" + coords.toString()); + } + } + } } if (geom == null) return null; geom.apply(getCoordinatesFilter()); -- Gitblit v0.0.0-SNAPSHOT