From 4693851558c7fefd53a294d4c8a2bf35d51812a6 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Mon, 19 May 2008 13:53:06 +0800 Subject: [PATCH] update for EOFM-92 --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java | 70 ++++++++++++++++++++++++++++++++++- 1 files changed, 68 insertions(+), 2 deletions(-) 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 44caa32..8865474 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 @@ -42,6 +42,7 @@ static final Log logger = LogFactory.getLog(IndexDgnConvertJobContext.class); static final LoggerFacade sLogger = new CommonsLoggingLogger(logger); static final GeometryFactory geometryFactory = new GeometryFactory(); + TWD97GeometryConverterDecorator convertDecorator = new TWD97GeometryConverterDecorator(); static final String SHPOUTPATH = "shpout"; private String dataOut = null; @@ -70,6 +71,14 @@ if (feature == null) { logger.info("cannot craete feature." + element.toString() + "'" + + ((TextElement) element).getText() + "'"); + return; + } + + feature = createFeature2((TextElement) element); + if (feature == null) + { + logger.info("cannot craete feature2." + element.toString() + "'" + ((TextElement) element).getText() + "'"); return; } @@ -140,8 +149,7 @@ ArrayList<Feature> features = featuresContext.get(featureType); for (Feature feature1 : features) { - Feature feature = feature1; - ((SimpleFeature) writer.next()).setAttributes(feature.getAttributes(null)); + ((SimpleFeature) writer.next()).setAttributes(feature1.getAttributes(null)); } //writer.close(); logger.debug("End Save shapefile:" + sfile.toURI()); @@ -204,6 +212,24 @@ return typeBuilder.getFeatureType(); } + public FeatureType createFeatureElement2(String featureName) throws SchemaException + { + if (typeBuilder == null) + { + typeBuilder = FeatureTypeBuilder.newInstance(featureName); + typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class)); + typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class)); + typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class)); + typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class)); + typeBuilder.addType(AttributeTypeFactory.newAttributeType("JUST", Integer.class)); + typeBuilder.addType(AttributeTypeFactory.newAttributeType("HEIGHT", Double.class)); + typeBuilder.addType(AttributeTypeFactory.newAttributeType("WIDTH", Double.class)); + typeBuilder.addType(AttributeTypeFactory.newAttributeType("ANGLE", Double.class)); + typeBuilder.addType(AttributeTypeFactory.newAttributeType("TPCID", String.class)); + } + return typeBuilder.getFeatureType(); + } + public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException { DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance(); @@ -237,6 +263,30 @@ return null; } + public Feature createFeature2(FeatureType featureType, Element element) throws IllegalAttributeException + { + DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance(); + if (element instanceof TextElement) + { + TextElement txtElement = (TextElement) element; + double angle = txtElement.getRotationAngle(); + convertDecorator.setConverter(txtElement); + Feature feature = featureType.create(new Object[]{ + convertDecorator.toGeometry(geometryFactory), + colorTable.getColorCode(txtElement.getColorIndex()), + txtElement.getWeight(), + txtElement.getLineStyle(), + txtElement.getJustification(), + txtElement.getTextHeight(), + txtElement.getTextWidth(), + angle, + txtElement.getText() + }); + return feature; + } + return null; + } + private Feature createFeature(TextElement element) throws SchemaException, IllegalAttributeException { if (featureType == null) @@ -252,6 +302,22 @@ return createFeature(featureType, element); } + private Feature createFeature2(TextElement element) throws SchemaException, IllegalAttributeException + { + if (featureType == null) + { + String dgnname = getFilename().toLowerCase(); + int i = dgnname.lastIndexOf("."); + if (i != -1) + { + dgnname = dgnname.substring(0, i); + } + dgnname = dgnname + "P"; + featureType = createFeatureElement2(dgnname); + } + return createFeature2(featureType, element); + } + protected FrammeAttributeData getFeatureLinkage(Element element) { if (!element.hasUserAttributeData()) -- Gitblit v0.0.0-SNAPSHOT