org.matsim.api.core.v01.network.Node类的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(7.4k)|赞(0)|评价(0)|浏览(80)

本文整理了Java中org.matsim.api.core.v01.network.Node类的一些代码示例,展示了Node类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node类的具体详情如下:
包路径:org.matsim.api.core.v01.network.Node
类名称:Node

Node介绍

[英]A topological representation of an network node. This interface deliberately does NOT have a back pointer ... ... since, at this level, one should be able to get the relevant container from the context. (This becomes clear if you think about a nodeId/linkId given by person.)
[中]网络节点的拓扑表示。这个接口故意没有一个反向指针。。。因为,在这个级别上,应该能够从上下文中获取相关的容器。(如果您想到person提供的nodeId/linkId,这一点就很清楚了。)

代码示例

代码示例来源:origin: matsim-org/matsim

@Override
public Coord getCoord() {
  return node.getCoord();
}

代码示例来源:origin: matsim-org/matsim

private SimpleFeature getFeature(Node node) {
  Point p = MGC.coord2Point(node.getCoord());
  try {
    return this.builder.buildFeature(null, new Object[]{p,node.getId().toString()});
  } catch (IllegalArgumentException e) {
    throw new RuntimeException(e);
  }
}

代码示例来源:origin: matsim-org/matsim

@Override
public Node removeNode(final Id<Node> nodeId) {
  Node n = this.nodes.remove(nodeId);
  if (n == null) {
    return null;
  }
  HashSet<Link> links1 = new HashSet<>();
  links1.addAll(n.getInLinks().values());
  links1.addAll(n.getOutLinks().values());
  for (Link l : links1) {
    removeLink(l.getId());
  }
  if (this.nodeQuadTree != null) {
    this.nodeQuadTree.remove(n.getCoord().getX(),n.getCoord().getY(),n);
  }
  return n;
}

代码示例来源:origin: matsim-org/matsim

public static Map<Id<Link>, ? extends Link> getIncidentLinks(Node node) {
  Map<Id<Link>, Link> links = new TreeMap<>(node.getInLinks());
  links.putAll(node.getOutLinks());
  return links;
}

代码示例来源:origin: matsim-org/matsim

public static Map<Id<Node>, ? extends Node> getInNodes(Node node) {
  Map<Id<Node>, Node> nodes = new TreeMap<>();
  for (Link link : node.getInLinks().values()) {
    Node inNode = link.getFromNode();
    nodes.put(inNode.getId(), inNode);
  }
  return nodes;
}

代码示例来源:origin: matsim-org/matsim

public static Map<Id<Node>, ? extends Node> getOutNodes(Node node) {
  Map<Id<Node>, Node> nodes = new TreeMap<>();
  for (Link link : node.getOutLinks().values()) {
    Node outNode = link.getToNode();
    nodes.put(outNode.getId(), outNode);
  }
  return nodes;
}

代码示例来源:origin: matsim-org/matsim

/**
 * Removes nodes from the network that have no incoming or outgoing links attached to them.
 */
public void removeNodesWithoutLinks() {
  List<Node> toBeRemoved = new ArrayList<>();
  for (Node node : this.network.getNodes().values()) {
    if ((node.getInLinks().size() == 0) && (node.getOutLinks().size() == 0)) {
      toBeRemoved.add(node);
    }
  }
  for (Node node : toBeRemoved) {
    this.network.removeNode(node.getId());
  }
}

代码示例来源:origin: matsim-org/matsim

@Override
  public String toString() {
    if (node == null) {
      return "[id=" + " null " + "]" +
          "[initialCost=" + this.initialCost + "]" +
          "[initialTime=" + this.initialTime + "]";
    } else {
      return "[id=" + this.node.getId() + "]" +
          "[initialCost=" + this.initialCost + "]" +
          "[initialTime=" + this.initialTime + "]";
    }

  }
}

代码示例来源:origin: matsim-org/matsim

@Override
  public void run(final Network network) {
    for (Node n : network.getNodes().values()) {
      Coord coord = n.getCoord();
      Coord new_coord = transformer.transform(coord);
//            coord.setXY(new_coord.getX(), new_coord.getY());
      n.setCoord(new_coord);
    }
  }
}

代码示例来源:origin: matsim-org/matsim

public static Link getConnectingLink(final Node fromNode, final Node toNode) {
  for (Link link : fromNode.getOutLinks().values()) {
    if (link.getToNode() == toNode) {
      return link;
    }
  }
  return null;
}

代码示例来源:origin: matsim-org/matsim

Node from = l.getFromNode();
Node to = l.getToNode();
Coord cFrom = from.getCoord();
Coord cTo = to.getCoord();
double xTo = cTo.getX();
double yTo = cTo.getY();
double thetaL = Math.atan2(yTo - cFrom.getY(), xTo - cFrom.getX());
Collection<? extends Link> outLinks = to.getOutLinks().values();
absDeltaThetas.clear();
if (outLinks.size() > 1) {
    Coord cOut = out.getToNode().getCoord();
    double deltaTheta = Math.atan2(cOut.getY() - yTo, cOut.getX()	- xTo) - thetaL;
    while (deltaTheta < -Math.PI) {

代码示例来源:origin: matsim-org/matsim

/**
 * Loads the inLinks-array with the corresponding links.
 * Cannot be called in constructor, as the queueNetwork does not yet know
 * the queueLinks. Should be called by QueueNetwork, after creating all
 * QueueNodes and QueueLinks.
 */
@Override
public void init() {
  int i = 0;
  for (Link l : this.node.getInLinks().values()) {
    QNetwork network = netsimEngine.getNetsimNetwork() ;
    this.inLinksArrayCache[i] = network.getNetsimLinks().get(l.getId());
    i++;
  }
  /* As the order of links has an influence on the simulation results,
   * the nodes are sorted to avoid indeterministic simulations. dg[april08]
   */
  Arrays.sort(this.inLinksArrayCache, new Comparator<NetsimLink>() {
    @Override
    public int compare(NetsimLink o1, NetsimLink o2) {
      return o1.getLink().getId().compareTo(o2.getLink().getId());
    }
  });
}

代码示例来源:origin: matsim-org/matsim

@Override
public Node createNode(final Id<Node> id, final Coord coord) {
  Node node = NetworkUtils.createNode(id);
  node.setCoord(coord) ;
  return node ;
}

代码示例来源:origin: matsim-org/matsim

private int getNOfIncidentNodes(final Node node) {
    HashMap<Id<Node>, Node> nodes = new HashMap<>();
    for (Link link : node.getInLinks().values()) {
      nodes.put(link.getFromNode().getId(), link.getFromNode());
    }
    for (Link link : node.getOutLinks().values()) {
      nodes.put(link.getToNode().getId(), link.getToNode());
    }
    return nodes.size();
  }
}

代码示例来源:origin: matsim-org/matsim

@Override
public Id<Node> getId() {
  return node.getId();
}

代码示例来源:origin: matsim-org/matsim

@Override
  public void run(Network network) {
    for (Node n : network.getNodes().values()) {
      Iterator<? extends Link> l1_it = n.getOutLinks().values().iterator();
      while (l1_it.hasNext()) {
        Link l1 = l1_it.next();
        Iterator<? extends Link> l2_it = n.getOutLinks().values().iterator();
        while (l2_it.hasNext()) {
          Link l2 = l2_it.next();
          if (!l2.equals(l1)) {
            if (l2.getToNode().equals(l1.getToNode())) {
              if (logInfoLevel.equals(LogInfoLevel.MAXIMUM)) {
                log.info("      Node id=" + n.getId());
              }

              this.mergeLink2IntoLink1(l1, l2, network);
              // restart
              l1_it = n.getOutLinks().values().iterator();
              l2_it = n.getOutLinks().values().iterator();
            }
          }
        }
      }
    }
  }
}

代码示例来源:origin: matsim-org/matsim

@Override
protected void setOrModifyNodeAttributes(Node n, OsmNode node) {
  if (this.elevationDataParser==null) return;
  Coord coord = n.getCoord();
  double elevation = elevationDataParser.getElevation(n.getCoord());
  Coord elevationCoord = CoordUtils.createCoord(coord.getX(), coord.getY(), elevation);
  n.setCoord(elevationCoord);
}

代码示例来源:origin: matsim-org/matsim

List<TurnInfo> turnInfosForInLink = null;
for (Node node : scenario.getNetwork().getNodes().values()) {
  for (Link inLink : node.getInLinks().values()) {
    turnInfosForInLink = inLinkTurnInfoMap.get(inLink.getId());
    if (turnInfosForInLink == null) {
    for (Link outLink : node.getOutLinks().values()) {
      if (! inLink.getAllowedModes().isEmpty() && ! outLink.getAllowedModes().isEmpty()) {
        if (inLink.getAllowedModes().contains(mode) && outLink.getAllowedModes().contains(mode)) {

代码示例来源:origin: matsim-org/matsim

RoutingNetworkNode routingNode = createRoutingNetworkNode(node, node.getInLinks().size());
routingNetwork.addNode(routingNode);
RoutingNetworkNode fromNode = routingNetwork.getNodes().get(link.getToNode().getId());
RoutingNetworkNode toNode = routingNetwork.getNodes().get(link.getFromNode().getId());
RoutingNetworkLink[] outLinks = new RoutingNetworkLink[node.getInLinks().size()];
for (Link inLink : node.getInLinks().values()) {
  outLinks[i] = routingLinks.remove(inLink.getId());
  i++;
RoutingNetworkNode dijkstraNode = routingNetwork.getNodes().get(node.getId());
dijkstraNode.setOutLinksArray(outLinks);

代码示例来源:origin: matsim-org/matsim

private static Link findLink(Node prevNode, Node node) {
  for (Link link : prevNode.getOutLinks().values()) {
    if (link.getToNode().equals(node)) {
      return link;
    }
  }
  return null;
}

相关文章