コード例 #1
0
  public Network createSmallNetwork(Network net, SignalSystemsData data) {
    Map<Id<SignalSystem>, Set<Id<Link>>> signalsToLinks =
        DgSignalsUtils.calculateSignalizedLinksPerSystem(data);
    final Set<Id<Link>> signalizedLinks = new HashSet<>();
    for (Set<Id<Link>> linkSet : signalsToLinks.values()) {
      signalizedLinks.addAll(linkSet);
    }
    NetworkFilterManager filterManager = new NetworkFilterManager(net);
    filterManager.addLinkFilter(
        new NetworkLinkFilter() {

          @Override
          public boolean judgeLink(Link l) {
            if (signalizedLinks.contains(l.getId())) {
              return true;
            }
            return false;
          }
        });

    Network newNetwork = filterManager.applyFilters();
    if (signalizedLinks.size() != newNetwork.getLinks().size()) {
      throw new IllegalStateException("Network should contain all signalized links but not more!");
    }
    return newNetwork;
  }
コード例 #2
0
  /** @param args */
  public static void main(String[] args) {
    Network network = NetworkUtils.createNetwork();
    new MatsimNetworkReader(network)
        .readFile(
            "../../../shared-svn/studies/jbischoff/multimodal/berlin/input/10pct/network.final10pct.xml.gz");
    NetworkFilterManager m = new NetworkFilterManager(network);
    m.addLinkFilter(
        new NetworkLinkFilter() {

          @Override
          public boolean judgeLink(Link l) {
            if (l.getAllowedModes().contains(TransportMode.car)) return true;
            else return false;
          }
        });
    Network network2 = m.applyFilters();
    new NetworkWriter(network2)
        .write(
            "../../../shared-svn/studies/jbischoff/multimodal/berlin/input/10pct/network.final10pct_car.xml.gz");
  }