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

View differences:

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