Revision 30840 trunk/extensions/extGraph/src/org/gvsig/graph/solvers/AbstractShortestPathSolver.java

View differences:

AbstractShortestPathSolver.java
42 42
import org.gvsig.graph.core.Network;
43 43
import org.gvsig.graph.core.NetworkUtils;
44 44

  
45
import com.hardcode.gdbms.engine.values.Value;
45 46
import com.iver.cit.gvsig.fmap.core.IFeature;
46 47
import com.iver.cit.gvsig.fmap.core.IGeometry;
47 48
import com.iver.cit.gvsig.fmap.core.v02.FConverter;
......
171 172
					// Si no, hemos pasado por idStop2 y la parte que hay que meter es desde el pto interior a idStop2
172 173
					///////////////////////////////////////////////////////////////////////////////////////
173 174
//					IFeature feat = va.getFeature(finalEdge.getIdArc());
174
					IFeature feat = featExtractor.getFeature(finalEdge.getIdArc());
175
					IGeometry g = featExtractor.getGeometry(finalEdge.getIdArc());
176
					Value nameStreet = featExtractor.getFieldValue(finalEdge.getIdArc(), getFieldIndexStreetName());
175 177
					
176
					MultiLineString jtsGeom = (MultiLineString) feat.getGeometry().toJTSGeometry();
178
					MultiLineString jtsGeom = (MultiLineString) g.toJTSGeometry();
177 179
			//		CoordinateFilter removeDuplicates = new UniqueCoordinateArrayFilter(); 
178 180
			//		jtsGeom.apply(removeDuplicates);
179 181
			//		jtsGeom.geometryChanged();
......
211 213
						// TODO: Calcular bien el length de este arco, 
212 214
						// basandonos en el porcentaje costeTramoFinal / costeOriginal
213 215
						route.addRouteFeature(geom, origin.getIdArc(), 
214
								costeTramoFinal, line.getLength(), feat.getAttribute(getFieldIndexStreetName()).toString());
216
								costeTramoFinal, line.getLength(), nameStreet.toString());
215 217
			
216 218
			
217 219
						return ; // Deber?a sacar el coste
......
223 225
					pNodo = graph.getNodeByID(idEnd);
224 226
					
225 227
					from_link = pNodo.get_best_from_link();
228
					
229
					long t1 = System.currentTimeMillis();
226 230
			
227 231
					while ((pNodo.getIdNode() != idStart)) 
228 232
					{
......
286 290
						if (pNodo.getIdNode() != idStart)
287 291
							from_link = pNodo.get_from_link(idEnlace);
288 292
					}
293
					long t2 = System.currentTimeMillis();
294
					System.out.println("T populate 1 = " + (t2-t1));
289 295
			
290 296
					// Y ahora recorremos hacia atr?s el vector y escribimos los shapes.
291 297
					// VECTORINFO::iterator theIterator;
292 298
					int auxC = 0;
293 299
					
300
					t1 = System.currentTimeMillis();
301
					
294 302
					while (!pilaShapes.empty())  
295 303
					{
296 304
						infoShp = (InfoShp) pilaShapes.peek();
297
//						feat = va.getFeature(infoShp.idArc);
298
						feat = featExtractor.getFeature(infoShp.idArc);
299
						MultiLineString line = (MultiLineString) feat.getGeometry().toJTSGeometry();
300
			//			line.apply(removeDuplicates);
301
			//			line.geometryChanged();
305
						g = featExtractor.getGeometry(infoShp.idArc);
306
						nameStreet = featExtractor.getFieldValue(infoShp.idArc, getFieldIndexStreetName());
307

  
308
						MultiLineString line = (MultiLineString) g.toJTSGeometry();
302 309
						
303 310
						LineString aux = null;
304 311
						if (infoShp.pct < 1.0)
......
320 327
							geom = FConverter.jts_to_igeometry(aux);
321 328
						}	
322 329
			
323
			
324 330
						route.addRouteFeature(geom, infoShp.idArc, 
325
								infoShp.cost, infoShp.distance, feat.getAttribute(getFieldIndexStreetName()).toString());
331
								infoShp.cost, infoShp.distance, nameStreet.toString());
326 332
			
327 333
			
328 334
						pilaShapes.pop();
329 335
						auxC++;
330 336
						
331 337
					}
332
			
338
					t2 = System.currentTimeMillis();
339
					System.out.println("T populate 2 = " + (t2-t1));
333 340
					return;
334 341
			
335 342
					

Also available in: Unified diff