Revision 42751 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.lib/org.gvsig.exportto.lib.impl/src/main/java/org/gvsig/exportto/impl/DefaultExporttoService.java
DefaultExporttoService.java | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
package org.gvsig.exportto.impl; |
25 | 25 |
|
26 |
import org.cresques.cts.ICoordTrans; |
|
26 | 27 |
import org.cresques.cts.IProjection; |
27 | 28 |
|
28 | 29 |
import org.gvsig.exportto.ExporttoService; |
... | ... | |
37 | 38 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
38 | 39 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
39 | 40 |
import org.gvsig.fmap.dal.feature.FeatureType; |
41 |
import org.gvsig.fmap.geom.Geometry; |
|
40 | 42 |
import org.gvsig.tools.ToolsLocator; |
41 | 43 |
import org.gvsig.tools.dispose.DisposableIterator; |
42 | 44 |
import org.gvsig.tools.dispose.DisposeUtils; |
... | ... | |
95 | 97 |
|
96 | 98 |
target.edit(FeatureStore.MODE_APPEND); |
97 | 99 |
it = featureSet.fastIterator(); |
98 |
|
|
100 |
IProjection targetProjection = |
|
101 |
target.getDefaultFeatureType().getDefaultGeometryAttribute().getSRS(); |
|
99 | 102 |
long featureCount = 0; |
100 | 103 |
while (it.hasNext()) { |
101 | 104 |
Feature feature = (Feature) it.next(); |
102 | 105 |
newfeature = target.createNewFeature(targetType, feature); |
106 |
// ================================================ |
|
107 |
// Reprojection stuff |
|
108 |
Geometry reproj_geom = null; |
|
109 |
IProjection sourceProjection =feature.getDefaultSRS(); |
|
110 |
|
|
111 |
ICoordTrans coord_trans = null; |
|
112 |
// this comparison is perhaps too preventive |
|
113 |
// we could have two instances of same projection |
|
114 |
// so we would do more computations than needed |
|
115 |
if (sourceProjection != null && |
|
116 |
targetProjection!=null && |
|
117 |
sourceProjection != targetProjection) { |
|
118 |
|
|
119 |
coord_trans = sourceProjection.getCT(targetProjection); |
|
120 |
reproj_geom = feature.getDefaultGeometry(); |
|
121 |
reproj_geom = reproj_geom.cloneGeometry(); |
|
122 |
reproj_geom.reProject(coord_trans); |
|
123 |
newfeature.setDefaultGeometry(reproj_geom); |
|
124 |
} |
|
125 |
// ================================================ |
|
126 |
|
|
103 | 127 |
target.insert(newfeature); |
104 | 128 |
|
105 | 129 |
featureCount++; |
Also available in: Unified diff