Revision 38883 branches/v2_0_0_prep/libraries/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.prov/org.gvsig.exportto.swing.prov.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExporttoShapeService.java
ExporttoShapeService.java | ||
---|---|---|
23 | 23 |
|
24 | 24 |
import java.io.File; |
25 | 25 |
|
26 |
import org.cresques.cts.ICoordTrans; |
|
26 | 27 |
import org.cresques.cts.IProjection; |
27 | 28 |
|
28 | 29 |
import org.gvsig.exportto.ExporttoService; |
... | ... | |
34 | 35 |
import org.gvsig.fmap.dal.exception.InitializeException; |
35 | 36 |
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException; |
36 | 37 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
38 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
|
37 | 39 |
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor; |
38 | 40 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
39 | 41 |
import org.gvsig.fmap.dal.feature.Feature; |
... | ... | |
46 | 48 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters; |
47 | 49 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters; |
48 | 50 |
import org.gvsig.fmap.geom.Geometry; |
51 |
import org.gvsig.fmap.mapcontext.layers.vectorial.IntersectsGeometryEvaluator; |
|
49 | 52 |
import org.gvsig.tools.dispose.DisposableIterator; |
50 | 53 |
import org.gvsig.tools.dispose.DisposeUtils; |
51 | 54 |
import org.gvsig.tools.task.AbstractMonitorableTask; |
... | ... | |
215 | 218 |
int geometryattribute = |
216 | 219 |
featureSet.getDefaultFeatureType() |
217 | 220 |
.getDefaultGeometryAttributeIndex(); |
221 |
|
|
222 |
|
|
218 | 223 |
|
224 |
// ================================================ |
|
225 |
// Reprojection stuff |
|
226 |
Geometry reproj_geom = null; |
|
227 |
EditableFeature edit_feat = null; |
|
228 |
IProjection sourceProjection = |
|
229 |
featureStore.getDefaultFeatureType().getDefaultGeometryAttribute().getSRS(); |
|
230 |
|
|
231 |
ICoordTrans coord_trans = null; |
|
232 |
// this comparison is perhaps too preventive |
|
233 |
// we could have two instances of same projection |
|
234 |
// so we would do more computations than needed |
|
235 |
if (sourceProjection != this.projection) { |
|
236 |
coord_trans = sourceProjection.getCT(this.projection); |
|
237 |
} |
|
238 |
// ================================================ |
|
239 |
|
|
219 | 240 |
while (it.hasNext()) { |
220 | 241 |
Feature feature = (Feature) it.next(); |
221 | 242 |
if (checkType |
... | ... | |
223 | 244 |
continue; |
224 | 245 |
} |
225 | 246 |
|
226 |
target.insert(target.createNewFeature(targetType, feature)); |
|
247 |
edit_feat = target.createNewFeature(targetType, feature); |
|
248 |
// ================================================ |
|
249 |
// Reprojection stuff |
|
250 |
if (coord_trans != null) { |
|
251 |
reproj_geom = edit_feat.getDefaultGeometry(); |
|
252 |
reproj_geom = reproj_geom.cloneGeometry(); |
|
253 |
reproj_geom.reProject(coord_trans); |
|
254 |
edit_feat.setDefaultGeometry(reproj_geom); |
|
255 |
} |
|
256 |
// ================================================ |
|
257 |
|
|
258 |
target.insert(edit_feat); |
|
227 | 259 |
|
228 | 260 |
featureCount++; |
229 | 261 |
this.taskStatus.setCurValue(featureCount); |
Also available in: Unified diff