Revision 8188 trunk/extensions/extGraph_predes/src/com/iver/cit/gvsig/graph/TestExtension.java
TestExtension.java | ||
---|---|---|
43 | 43 |
import java.awt.BasicStroke; |
44 | 44 |
import java.awt.Color; |
45 | 45 |
import java.awt.Frame; |
46 |
import java.awt.geom.Point2D; |
|
47 | 46 |
import java.io.File; |
48 | 47 |
import java.util.Collection; |
49 | 48 |
import java.util.Iterator; |
... | ... | |
69 | 68 |
import com.iver.cit.gvsig.graph.core.FEdge; |
70 | 69 |
import com.iver.cit.gvsig.graph.core.FNode; |
71 | 70 |
import com.iver.cit.gvsig.graph.core.IGraph; |
72 |
import com.iver.cit.gvsig.graph.core.JungConverter; |
|
73 | 71 |
import com.iver.cit.gvsig.graph.core.JungGraph; |
74 | 72 |
import com.iver.cit.gvsig.graph.core.Network; |
75 | 73 |
import com.iver.cit.gvsig.graph.core.NetworkRedLoader; |
74 |
import com.iver.cit.gvsig.graph.gui.DlgDirections; |
|
76 | 75 |
import com.iver.cit.gvsig.graph.solvers.Route; |
77 | 76 |
import com.iver.cit.gvsig.graph.solvers.ShortestPathSolver; |
78 |
import com.iver.cit.gvsig.graph.ui.DlgDirections; |
|
79 | 77 |
import com.iver.cit.gvsig.project.documents.view.gui.View; |
80 | 78 |
|
81 | 79 |
import edu.uci.ics.jung.algorithms.shortestpath.DijkstraShortestPath; |
82 |
import edu.uci.ics.jung.graph.ArchetypeGraph; |
|
83 |
import edu.uci.ics.jung.graph.Vertex; |
|
84 |
import edu.uci.ics.jung.graph.decorators.Indexer; |
|
85 | 80 |
|
86 | 81 |
public class TestExtension extends Extension { |
87 | 82 |
|
88 | 83 |
public static ShortestPathSolver solver = new ShortestPathSolver(); |
89 | 84 |
private int idSymbolLine = -1; |
90 |
|
|
85 |
|
|
91 | 86 |
public void initialize() { |
92 | 87 |
} |
93 | 88 |
|
... | ... | |
103 | 98 |
Network net = new Network(); |
104 | 99 |
net.setLayer((FLyrVect) aux); |
105 | 100 |
NetworkRedLoader netLoader = new NetworkRedLoader(); |
106 |
|
|
101 |
|
|
107 | 102 |
netLoader.setNetFile(new File("c:/ejes.red")); |
108 |
|
|
103 |
|
|
109 | 104 |
IGraph g = netLoader.loadNetwork(); |
110 | 105 |
|
111 | 106 |
net.setGraph(g); |
112 | 107 |
|
113 | 108 |
// Primer punto |
114 | 109 |
net.addFlag(433647.09375, 4488029, 10); |
115 |
|
|
110 |
|
|
116 | 111 |
// Segundo punto |
117 | 112 |
net.addFlag(437290.96875, 4481547, 10); |
118 |
|
|
119 |
|
|
120 |
|
|
113 |
|
|
114 |
|
|
115 |
|
|
121 | 116 |
Route route; |
122 |
try {
|
|
117 |
try { |
|
123 | 118 |
solver.setNetwork(net); |
124 | 119 |
solver.setFielStreetName("Nombre"); |
125 | 120 |
route = solver.calculateRoute(); |
... | ... | |
127 | 122 |
dlg.setModel(route.getFeatureList()); |
128 | 123 |
|
129 | 124 |
createGraphicsFrom(route.getFeatureList(), v.getMapControl()); |
130 |
|
|
125 |
|
|
131 | 126 |
dlg.setVisible(true); |
132 | 127 |
System.out.println("distancia fjp:" + route.getCost()); |
133 |
|
|
128 |
|
|
134 | 129 |
// PROBAMOS JUNG |
135 | 130 |
JungGraph jG = new JungGraph(net.getGraph()); |
136 |
|
|
131 |
|
|
137 | 132 |
// Probamos la algoritmia: distancia entre nodo 1 y nodo 1000 |
138 | 133 |
DijkstraShortestPath distCalculator = new DijkstraShortestPath(jG, new EdgeWeightLabeller()); |
139 | 134 |
FNode vOrig = jG.getVertexByID(1); |
... | ... | |
141 | 136 |
long t1 = System.currentTimeMillis(); |
142 | 137 |
Number dist = distCalculator.getDistance(vOrig, vEnd); |
143 | 138 |
long t2 = System.currentTimeMillis(); |
144 |
|
|
139 |
|
|
145 | 140 |
// assertEquals(dist.doubleValue(), 8887, 0); |
146 |
|
|
141 |
|
|
147 | 142 |
System.out.println("dist =" + dist + " meters. msecs: " + (t2-t1)); |
148 | 143 |
|
149 | 144 |
List path = distCalculator.getPath(vOrig, vEnd); |
... | ... | |
153 | 148 |
System.out.println(vOrig.getX() + ", " + vOrig.getY() |
154 | 149 |
+ " - " + vEnd.getX() + ", " + vEnd.getY()); |
155 | 150 |
|
156 |
|
|
151 |
|
|
157 | 152 |
} catch (GraphException e) { |
158 | 153 |
// TODO Auto-generated catch block |
159 | 154 |
e.printStackTrace(); |
... | ... | |
162 | 157 |
e.printStackTrace(); |
163 | 158 |
} |
164 | 159 |
} |
165 |
|
|
166 |
|
|
167 |
|
|
160 |
|
|
161 |
|
|
162 |
|
|
168 | 163 |
} |
169 | 164 |
|
170 | 165 |
private void createGraphicsFrom(Collection featureList, MapControl mapControl) { |
... | ... | |
184 | 179 |
graphicLayer.addGraphic(graphic); |
185 | 180 |
} |
186 | 181 |
mapControl.drawGraphics(); |
187 |
|
|
182 |
|
|
188 | 183 |
} |
189 |
|
|
184 |
|
|
190 | 185 |
private void createGraphicsFrom(ListIterator it, MapControl mapControl) throws DriverException { |
191 | 186 |
GraphicLayer graphicLayer = mapControl.getMapContext().getGraphicsLayer(); |
192 | 187 |
Color color = new Color(0.5f, 0.8f, 0.0f, 0.5f); |
... | ... | |
202 | 197 |
graphicLayer.addGraphic(graphic); |
203 | 198 |
} |
204 | 199 |
mapControl.drawGraphics(); |
205 |
|
|
200 |
|
|
206 | 201 |
} |
207 |
|
|
208 | 202 |
|
203 |
|
|
209 | 204 |
public boolean isEnabled() { |
210 | 205 |
// TODO Auto-generated method stub |
211 | 206 |
return true; |
Also available in: Unified diff