Revision 28155 branches/v2_0_0_prep/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/process/PotraceProcess.java
PotraceProcess.java | ||
---|---|---|
101 | 101 |
insertLineLog("Potrace"); |
102 | 102 |
generatePotrace(); |
103 | 103 |
} catch (DataException e) { |
104 |
RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
|
|
104 |
RasterToolsUtil.messageBoxError("error_loading_store", this, e);
|
|
105 | 105 |
} catch (CreateGeometryException e) { |
106 | 106 |
RasterToolsUtil.messageBoxError("error_closing_grid", this, e); |
107 | 107 |
} catch (RasterDriverException e) { |
108 | 108 |
RasterToolsUtil.messageBoxError("error_closing_grid", this, e); |
109 | 109 |
} catch (ValidateDataParametersException e) { |
110 |
RasterToolsUtil.messageBoxError("error_closing_grid", this, e); |
|
110 |
RasterToolsUtil.messageBoxError("error_loading_store", this, e); |
|
111 |
} catch (NullPointerException e) { |
|
112 |
e.printStackTrace(); |
|
111 | 113 |
} finally { |
112 | 114 |
if (incrementableTask != null) { |
113 | 115 |
incrementableTask.processFinalize(); |
... | ... | |
145 | 147 |
String sFields[] = new String[2]; |
146 | 148 |
sFields[0] = "ID"; |
147 | 149 |
sFields[1] = fileName + ""; |
148 |
/////////////////// |
|
150 |
|
|
149 | 151 |
EditableFeatureType featureType = getFeatureType(fileName); |
150 | 152 |
|
151 |
EditableFeatureAttributeDescriptor efad=featureType.add("GEOMETRY", DataTypes.GEOMETRY);
|
|
153 |
EditableFeatureAttributeDescriptor efad = featureType.add("GEOMETRY", DataTypes.GEOMETRY);
|
|
152 | 154 |
efad.setGeometryType(Geometry.TYPES.CURVE); |
153 | 155 |
efad.setSRS(CRSFactory.getCRS("EPSG:23030")); |
154 | 156 |
featureType.setDefaultGeometryAttributeName("GEOMETRY"); |
155 | 157 |
|
156 |
|
|
157 |
DataManager datamanager=DALLocator.getDataManager(); |
|
158 |
DataManager datamanager = DALLocator.getDataManager(); |
|
158 | 159 |
FilesystemServerExplorerParameters explorerParams; |
159 | 160 |
|
160 | 161 |
explorerParams = (FilesystemServerExplorerParameters) datamanager.createServerExplorerParameters(FilesystemServerExplorer.NAME); |
161 | 162 |
|
162 | 163 |
explorerParams.setRoot(new File(fileName).getParent()); |
163 |
FilesystemServerExplorer explorer=(FilesystemServerExplorer) datamanager.createServerExplorer(explorerParams);
|
|
164 |
FilesystemServerExplorer explorer = (FilesystemServerExplorer) datamanager.createServerExplorer(explorerParams);
|
|
164 | 165 |
NewFeatureStoreParameters newParams = (NewFeatureStoreParameters) explorer.getAddParameters(new File(fileName)); |
165 | 166 |
|
166 | 167 |
newParams.setDefaultFeatureType(featureType); |
168 |
newParams.setDynValue("srs", CRSFactory.getCRS("EPSG:23030")); |
|
167 | 169 |
explorer.add(newParams, true); |
168 | 170 |
DataManager manager = DALLocator.getDataManager(); |
169 | 171 |
//////////////////////// |
170 |
fsWriter=(FeatureStore)manager.createStore(newParams); |
|
171 |
if (fileName.endsWith(".dxf")) { |
|
172 |
|
|
173 |
|
|
174 |
// fsWriter = new DxfWriter(); |
|
175 |
// ((DxfWriter) writer).setFile(new File(fileName)); |
|
176 |
// ProjectionPool pool = new ProjectionPool(); |
|
177 |
// ((DxfWriter) writer).setProjection(pool.get("EPSG:23030")); |
|
178 |
// tableDef = new DXFLayerDefinition(); |
|
179 |
// |
|
180 |
// DxfFieldsMapping fieldsMapping = new DxfFieldsMapping(); |
|
181 |
// ((DxfWriter) writer).setFieldMapping(fieldsMapping); |
|
182 |
} |
|
183 |
if (fileName.endsWith(".shp")) { |
|
184 |
// writer = new ShpWriter(); |
|
185 |
// ((ShpWriter) writer).setFile(new File(fileName)); |
|
186 |
// tableDef = new SHPLayerDefinition(); |
|
187 |
} |
|
188 |
// tableDef.setShapeType(FShape.LINE); |
|
189 |
|
|
190 |
// int types[] = { Types.DOUBLE, Types.DOUBLE }; |
|
191 |
// FieldDescription[] fields = new FieldDescription[sFields.length]; |
|
192 |
// for (int i = 0; i < fields.length; i++) { |
|
193 |
// fields[i] = new FieldDescription(); |
|
194 |
// fields[i].setFieldName(sFields[i]); |
|
195 |
// fields[i].setFieldType(types[i]); |
|
196 |
// fields[i].setFieldLength(getDataTypeLength(types[i])); |
|
197 |
// fields[i].setFieldDecimalCount(5); |
|
198 |
// } |
|
199 |
// tableDef.setFieldsDesc(fields); |
|
200 |
// tableDef.setName(fileName); |
|
201 |
// |
|
202 |
// writer.initialize(tableDef); |
|
172 |
fsWriter = (FeatureStore)manager.createStore(newParams); |
|
203 | 173 |
fsWriter.edit(FeatureStore.MODE_APPEND); |
204 | 174 |
|
205 | 175 |
values = new Object[2]; |
... | ... | |
211 | 181 |
fsWriter.finishEditing(); |
212 | 182 |
} |
213 | 183 |
|
214 |
// public void addShape(FShape shape, Value[] value) throws Exception { |
|
215 |
// if (shape == null) |
|
216 |
// return; |
|
217 |
// IGeometry geom = ShapeFactory.createGeometry(shape); |
|
218 |
// addGeometry(geom, value); |
|
219 |
// } |
|
220 |
|
|
221 | 184 |
public void addGeometry(Geometry geom, Object[] value) throws DataException { |
222 |
// DefaultFeature feat = new DefaultFeature(geom, value, Integer.toString(m_iGeometry)); |
|
223 |
// IRowEdited editFeat = new DefaultRowEdited(feat, IRowEdited.STATUS_MODIFIED, m_iGeometry); |
|
224 | 185 |
m_iGeometry++; |
225 |
EditableFeature ef=fsWriter.createNewFeature();
|
|
186 |
EditableFeature ef = fsWriter.createNewFeature();
|
|
226 | 187 |
ef.set("ID", value[0]); |
227 |
ef.set(fileName,value[1]);
|
|
188 |
ef.set("NAME", value[1]);
|
|
228 | 189 |
ef.setGeometry("GEOMETRY", geom); |
229 | 190 |
fsWriter.insert(ef); |
230 | 191 |
} |
... | ... | |
239 | 200 |
private void showPotrace(double[] potraceX, int trozos) throws DataException, CreateGeometryException, InterruptedException { |
240 | 201 |
RasterTask task = RasterTaskQueue.get(Thread.currentThread().toString()); |
241 | 202 |
BezierPathX pathX = new BezierPathX(trozos); |
242 |
|
|
203 |
int ID = 0; |
|
204 |
double dZ; |
|
205 |
|
|
243 | 206 |
double increment = (100 / (double)potraceX.length); |
244 | 207 |
int cont = 1; |
245 | 208 |
while (true) { |
... | ... | |
263 | 226 |
break; |
264 | 227 |
case 3: // closePath |
265 | 228 |
Geometry line = geomManager.createCurve(pathX, SUBTYPES.GEOM2D); |
229 |
ID ++; |
|
230 |
values[0] = new Double(ID); |
|
266 | 231 |
addGeometry(line, values); |
267 | 232 |
pathX = new BezierPathX(trozos); |
268 | 233 |
cont ++; |
... | ... | |
276 | 241 |
private EditableFeatureType getFeatureType(String fileName){ |
277 | 242 |
EditableFeatureType eft=new DefaultEditableFeatureType(); |
278 | 243 |
|
279 |
EditableFeatureAttributeDescriptor efad1=eft.add("ID", DataTypes.DOUBLE);
|
|
244 |
EditableFeatureAttributeDescriptor efad1 = eft.add("ID", DataTypes.DOUBLE);
|
|
280 | 245 |
efad1.setPrecision(5); |
281 |
EditableFeatureAttributeDescriptor efad2=eft.add(fileName, DataTypes.DOUBLE);
|
|
246 |
EditableFeatureAttributeDescriptor efad2 = eft.add("NAME", DataTypes.DOUBLE);
|
|
282 | 247 |
efad2.setPrecision(5); |
283 | 248 |
|
284 | 249 |
return eft; |
Also available in: Unified diff