Revision 20099 tags/v1_1_2_Build_1044/prototypes/VectorialAvanzado/extensions/extGraph/src/com/iver/cit/gvsig/graph/core/loaders/NetworkRedLoader.java

View differences:

NetworkRedLoader.java
47 47
import java.nio.ByteOrder;
48 48
import java.nio.MappedByteBuffer;
49 49
import java.nio.channels.FileChannel;
50
import java.util.ArrayList;
51 50

  
52
import javax.imageio.stream.FileImageOutputStream;
53

  
54 51
import com.iver.cit.gvsig.graph.core.EdgePair;
55 52
import com.iver.cit.gvsig.graph.core.GvEdge;
56 53
import com.iver.cit.gvsig.graph.core.GvGraph;
......
58 55
import com.iver.cit.gvsig.graph.core.IGraph;
59 56
import com.iver.cit.gvsig.graph.core.INetworkLoader;
60 57

  
61
import edu.uci.ics.jung.graph.Graph;
62
import edu.uci.ics.jung.graph.Vertex;
63
import edu.uci.ics.jung.graph.decorators.Indexer;
64
import edu.uci.ics.jung.graph.impl.DirectedSparseEdge;
65
import edu.uci.ics.jung.graph.impl.DirectedSparseVertex;
66
import edu.uci.ics.jung.graph.impl.SparseGraph;
67

  
68 58
/**
69 59
 * @author fjp
70 60
 * 
......
74 64
 */
75 65
public class NetworkRedLoader implements INetworkLoader {
76 66
	
77
	private File netFile = new File("c:/ejes.red");
67
	private File netFile = new File("c:/ejes.net");
78 68

  
79 69
	public IGraph loadNetwork() {
80 70
		
......
160 150
		return null;
161 151
	}
162 152
	
163
	public Graph loadJungNetwork()
164
	{
165
		SparseGraph g = new SparseGraph();
166
		long t1 = System.currentTimeMillis();
167
		
168
		RandomAccessFile file;
169
		try {
170
			file = new RandomAccessFile(netFile.getPath(),
171
					"r");
172
			FileChannel channel = file.getChannel();
173
			MappedByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
174
			buf.order(ByteOrder.LITTLE_ENDIAN);
153
//	public Graph loadJungNetwork()
154
//	{
155
//		SparseGraph g = new SparseGraph();
156
//		long t1 = System.currentTimeMillis();
157
//		
158
//		RandomAccessFile file;
159
//		try {
160
//			file = new RandomAccessFile(netFile.getPath(),
161
//					"r");
162
//			FileChannel channel = file.getChannel();
163
//			MappedByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
164
//			buf.order(ByteOrder.LITTLE_ENDIAN);
165
//
166
//			int numArcs = buf.getInt();
167
//			int numEdges = buf.getInt();
168
//			int numNodes = buf.getInt();
169
//			
170
//			// Nodes
171
//			buf.position(24*numEdges + 12);
172
//			for (int i=0; i < numNodes; i++)
173
//			{
174
//				GvNode node = readNode(buf);
175
//				
176
//				Vertex v = new DirectedSparseVertex();
177
////				v.addUserDatum("ID", node.idNode, UserData.CLONE);
178
////				v.addUserDatum("X", node.x, UserData.CLONE);
179
////				v.addUserDatum("Y", node.y, UserData.CLONE);
180
//	//			v_locations.setLocation(v, new Point2D.Double(x.doubleValue(),y.doubleValue()));
181
//				g.addVertex(v);				
182
//			}
183
//			Indexer indexer = Indexer.getIndexer(g);
184
//		
185
//			buf.position(12);
186
//			for (int i=0; i < numEdges; i++)
187
//			{
188
//				GvEdge edge = readEdge(buf);
189
//				
190
//				int nodeOrig = edge.getIdNodeOrig();
191
//				int nodeEnd = edge.getIdNodeEnd();
192
//				
193
//				Vertex vFrom = (Vertex) indexer.getVertex(nodeOrig);
194
//				Vertex vTo = (Vertex) indexer.getVertex(nodeEnd);
195
//				
196
//				DirectedSparseEdge edgeJ = new DirectedSparseEdge(vFrom, vTo);
197
//				g.addEdge(edgeJ);
198
//			}
199
//			long t2 = System.currentTimeMillis();
200
//			System.out.println("Tiempo de carga: " + (t2-t1) + " msecs");
201
//			return g;
202
//		} catch (FileNotFoundException e) {
203
//			// TODO Auto-generated catch block
204
//			e.printStackTrace();
205
//		} catch (IOException e) {
206
//			// TODO Auto-generated catch block
207
//			e.printStackTrace();
208
//		}
209
//		return null;
210
//	}
175 211

  
176
			int numArcs = buf.getInt();
177
			int numEdges = buf.getInt();
178
			int numNodes = buf.getInt();
179
			
180
			// Nodes
181
			buf.position(24*numEdges + 12);
182
			for (int i=0; i < numNodes; i++)
183
			{
184
				GvNode node = readNode(buf);
185
				
186
				Vertex v = new DirectedSparseVertex();
187
//				v.addUserDatum("ID", node.idNode, UserData.CLONE);
188
//				v.addUserDatum("X", node.x, UserData.CLONE);
189
//				v.addUserDatum("Y", node.y, UserData.CLONE);
190
	//			v_locations.setLocation(v, new Point2D.Double(x.doubleValue(),y.doubleValue()));
191
				g.addVertex(v);				
192
			}
193
			Indexer indexer = Indexer.getIndexer(g);
194
		
195
			buf.position(12);
196
			for (int i=0; i < numEdges; i++)
197
			{
198
				GvEdge edge = readEdge(buf);
199
				
200
				int nodeOrig = edge.getIdNodeOrig();
201
				int nodeEnd = edge.getIdNodeEnd();
202
				
203
				Vertex vFrom = (Vertex) indexer.getVertex(nodeOrig);
204
				Vertex vTo = (Vertex) indexer.getVertex(nodeEnd);
205
				
206
				DirectedSparseEdge edgeJ = new DirectedSparseEdge(vFrom, vTo);
207
				g.addEdge(edgeJ);
208
			}
209
			long t2 = System.currentTimeMillis();
210
			System.out.println("Tiempo de carga: " + (t2-t1) + " msecs");
211
			return g;
212
		} catch (FileNotFoundException e) {
213
			// TODO Auto-generated catch block
214
			e.printStackTrace();
215
		} catch (IOException e) {
216
			// TODO Auto-generated catch block
217
			e.printStackTrace();
218
		}
219
		return null;
220
	}
221

  
222 212
	private GvNode readNode(MappedByteBuffer buf) {
223 213
		GvNode node = new GvNode();
224 214
		node.setIdNode(buf.getInt());
......
283 273
		NetworkRedLoader redLoader = new NetworkRedLoader();
284 274
		
285 275
		redLoader.loadNetwork();
286
		redLoader.loadJungNetwork();
276
//		redLoader.loadJungNetwork();
287 277

  
288 278
	}
289 279

  

Also available in: Unified diff