Revision 28552 trunk/extensions/extGraph/src/org/gvsig/graph/solvers/AbstractShortestPathSolver.java
AbstractShortestPathSolver.java | ||
---|---|---|
32 | 32 |
|
33 | 33 |
import org.gvsig.exceptions.BaseException; |
34 | 34 |
import org.gvsig.graph.core.AbstractNetSolver; |
35 |
import org.gvsig.graph.core.DefaultFeatureExtractor; |
|
35 | 36 |
import org.gvsig.graph.core.GvEdge; |
36 | 37 |
import org.gvsig.graph.core.GvFlag; |
37 | 38 |
import org.gvsig.graph.core.GvNode; |
39 |
import org.gvsig.graph.core.IFeatureExtractor; |
|
38 | 40 |
import org.gvsig.graph.core.IGraph; |
39 | 41 |
import org.gvsig.graph.core.InfoShp; |
42 |
import org.gvsig.graph.core.Network; |
|
40 | 43 |
import org.gvsig.graph.core.NetworkUtils; |
41 | 44 |
|
42 | 45 |
import com.iver.cit.gvsig.fmap.core.IFeature; |
... | ... | |
54 | 57 |
private GeometryFactory geomFactory = new GeometryFactory(); |
55 | 58 |
protected Route route = new Route(); |
56 | 59 |
private int fieldIndexStreetName; |
60 |
private IFeatureExtractor featExtractor = null; |
|
57 | 61 |
|
58 | 62 |
public void setFielStreetName(String name) { |
59 | 63 |
try { |
... | ... | |
118 | 122 |
IGraph graph = net.getGraph(); |
119 | 123 |
node = graph.getNodeByID(idEnd); |
120 | 124 |
int from_link = node.get_best_from_link(); |
125 |
|
|
126 |
if (featExtractor == null) |
|
127 |
featExtractor = new DefaultFeatureExtractor(net.getLayer()); |
|
128 |
|
|
121 | 129 |
VectorialAdapter va = (VectorialAdapter) net.getLayer().getSource(); |
122 | 130 |
|
123 | 131 |
/* Miramos los nodos de los tramos inicio y final, y cogemos el nodo que tenga el from_link rellenado. E IGUAL A NUMSOLUCGLOBAL!!!! |
... | ... | |
162 | 170 |
// as? que recorremos ese shape desde idStop1 hasta que rebasemos o igualemos ese porcentaje. |
163 | 171 |
// Si no, hemos pasado por idStop2 y la parte que hay que meter es desde el pto interior a idStop2 |
164 | 172 |
/////////////////////////////////////////////////////////////////////////////////////// |
165 |
IFeature feat = va.getFeature(finalEdge.getIdArc()); |
|
173 |
// IFeature feat = va.getFeature(finalEdge.getIdArc()); |
|
174 |
IFeature feat = featExtractor.getFeature(finalEdge.getIdArc()); |
|
175 |
|
|
166 | 176 |
MultiLineString jtsGeom = (MultiLineString) feat.getGeometry().toJTSGeometry(); |
167 | 177 |
// CoordinateFilter removeDuplicates = new UniqueCoordinateArrayFilter(); |
168 | 178 |
// jtsGeom.apply(removeDuplicates); |
... | ... | |
284 | 294 |
while (!pilaShapes.empty()) |
285 | 295 |
{ |
286 | 296 |
infoShp = (InfoShp) pilaShapes.peek(); |
287 |
feat = va.getFeature(infoShp.idArc); |
|
297 |
// feat = va.getFeature(infoShp.idArc); |
|
298 |
feat = featExtractor.getFeature(infoShp.idArc); |
|
288 | 299 |
MultiLineString line = (MultiLineString) feat.getGeometry().toJTSGeometry(); |
289 | 300 |
// line.apply(removeDuplicates); |
290 | 301 |
// line.geometryChanged(); |
... | ... | |
412 | 423 |
private int getFieldIndexStreetName() { |
413 | 424 |
return fieldIndexStreetName; |
414 | 425 |
} |
415 |
|
|
416 | 426 |
|
427 |
public IFeatureExtractor getFeatExtractor() { |
|
428 |
return featExtractor; |
|
429 |
} |
|
430 |
|
|
431 |
public void setFeatExtractor(IFeatureExtractor featExtractor) { |
|
432 |
this.featExtractor = featExtractor; |
|
433 |
} |
|
434 |
|
|
435 |
|
|
417 | 436 |
} |
418 | 437 |
|
Also available in: Unified diff