Revision 63 org.gvsig.sextante/trunk/org.gvsig.sextante.app/org.gvsig.sextante.app.algorithm/org.gvsig.sextante.app.algorithm.spatialjoin/src/main/java/org/gvsig/sextante/app/algorithm/spatialjoin/SpatiallyIndexedSpatialJoinOperation.java
SpatiallyIndexedSpatialJoinOperation.java | ||
---|---|---|
91 | 91 |
org.gvsig.fmap.geom.Geometry g2 = feat.getDefaultGeometry(); |
92 | 92 |
Geometry g2Jts = GeometryUtil.geomToJTS(g2); |
93 | 93 |
double dist = gJts.distance(g2Jts); |
94 |
if (dist <= nearestDistance) |
|
94 |
if (dist <= nearestDistance) {
|
|
95 | 95 |
nearestDistance = dist; |
96 |
} |
|
96 | 97 |
buildFeature(featureInput, feat, new Double(nearestDistance), g); |
97 | 98 |
continue; |
98 | 99 |
} |
... | ... | |
102 | 103 |
org.gvsig.fmap.geom.Geometry g2 = itGeom.next(); |
103 | 104 |
Geometry g2Jts = GeometryUtil.geomToJTS(g2); |
104 | 105 |
double dist = gJts.distance(g2Jts); |
105 |
if (dist <= nearestDistance) |
|
106 |
if (dist <= nearestDistance) {
|
|
106 | 107 |
nearestDistance = dist; |
108 |
} |
|
107 | 109 |
buildFeature(featureInput, feat, new Double(nearestDistance), g); |
108 | 110 |
} |
109 | 111 |
} |
... | ... | |
114 | 116 |
Sextante.addErrorToLog(e); |
115 | 117 |
} |
116 | 118 |
|
117 |
//IFeature joinedFeature = createFeature(g, sourceIndex, targetIndex,nearestDistance); |
|
118 |
|
|
119 |
return null; |
|
119 |
return lastEditFeature; |
|
120 | 120 |
} |
121 | 121 |
|
122 | 122 |
/** |
... | ... | |
129 | 129 |
*/ |
130 | 130 |
private void buildFeature(Feature feat1, Feature feat2, Object value, org.gvsig.fmap.geom.Geometry g) throws DataException { |
131 | 131 |
EditableFeature outFeat = persister.getOutputFeatureStore().createNewFeature(); |
132 |
int sizeFeat1 = feat1.getType().size(); |
|
132 |
int sizeFeat1 = feat1.getType().size() - 1;
|
|
133 | 133 |
|
134 | 134 |
for (int i = 0; i < sizeFeat1; i++) |
135 | 135 |
outFeat.set(i, feat1.get(i)); |
136 | 136 |
|
137 |
for (int i = sizeFeat1; i < sizeFeat1 + feat2.getType().size(); i++) |
|
137 |
for (int i = sizeFeat1; i < sizeFeat1 + feat2.getType().size() - 1; i++)
|
|
138 | 138 |
outFeat.set(i, feat2.get(i - sizeFeat1)); |
139 | 139 |
|
140 |
outFeat.set(outFeat.getType().size() - 1, value);
|
|
140 |
outFeat.set(outFeat.getType().size() - 2, value);
|
|
141 | 141 |
try { |
142 | 142 |
persister.addFeature(outFeat, g); |
143 | 143 |
} catch (CreateGeometryException e) { |
Also available in: Unified diff