private void OnTransportNetworkCellAdded(TransportNetworkType networkType, TransportCellKey cellKey) { if (networkType != NetworkType) { return; } var nodeIds = m_transportApi.GetNodeIdsForNetworkInCell(networkType, cellKey); var directedEdgeIds = m_transportApi.GetDirectedEdgeIdsForNetworkInCell(networkType, cellKey); var wayIds = m_transportApi.GetWayIdsForNetworkInCell(networkType, cellKey); AddForCell(cellKey, nodeIds, directedEdgeIds, wayIds); }
/// <summary> /// Get all TransportDirectedEdge objects currently streamed in for the given transport network and cell. /// </summary> /// <param name="transportApi">TransportApi instance.</param> /// <param name="transportNetwork">The returned results are filtered to contain only objects belonging to this transport network.</param> /// <param name="cellKey">The returned results are filtered to contain only objects belonging to this cell.</param> /// <returns>The list of TransportDirectedEdge objects for the given network and cell.</returns> static public IList <TransportDirectedEdge> GetDirectedEdgesForNetworkAndCell(this TransportApi transportApi, TransportNetworkType transportNetwork, TransportCellKey cellKey) { var directedEdgeIds = transportApi.GetDirectedEdgeIdsForNetworkInCell(transportNetwork, cellKey); var directedEdges = new List <TransportDirectedEdge>(); foreach (var directedEdgeId in directedEdgeIds) { TransportDirectedEdge directedEdge; if (!transportApi.TryGetDirectedEdge(directedEdgeId, out directedEdge)) { throw new System.ArgumentOutOfRangeException("unable to fetch TransportDirectedEdge"); } directedEdges.Add(directedEdge); } return(directedEdges); }