package btools.mapcreator; import java.io.DataInputStream; import java.io.EOFException; import java.io.File; import java.util.HashMap; import java.util.Map; /** * WayCutter does 2 step in map-processing: *

* - cut the way file into 45*30 - pieces * - enrich ways with relation information * * @author ab */ public class RelationStatistics extends MapCreatorBase { public static void main(String[] args) throws Exception { System.out.println("*** RelationStatistics: count relation networks"); if (args.length != 1) { System.out.println("usage: java WayCutter "); return; } new RelationStatistics().process(new File(args[0])); } public void process(File relationFileIn) throws Exception { Map relstats = new HashMap<>(); DataInputStream dis = createInStream(relationFileIn); try { for (; ; ) { long rid = readId(dis); String network = dis.readUTF(); int waycount = 0; for (; ; ) { long wid = readId(dis); if (wid == -1) break; waycount++; } long[] stat = relstats.get(network); if (stat == null) { stat = new long[2]; relstats.put(network, stat); } stat[0]++; stat[1] += waycount; } } catch (EOFException eof) { dis.close(); } for (String network : relstats.keySet()) { long[] stat = relstats.get(network); System.out.println("network: " + network + " has " + stat[0] + " relations with " + stat[1] + " ways"); } } }